加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 策划 > 正文

聊一聊SQLMAP在进行SQL注入时的整个流程

发布时间:2019-07-05 21:28:58 所属栏目:策划 来源:sher10ck
导读:副标题#e# 很多小伙伴在发现或者判断出注入的时候,大多数选择就是直接上sqlmap,结果往往也不尽人意,于是就有想法来写写 sqlmap 从执行到判断注入,到底发生了什么? 本文就用我们看的见的角度来分析,看看sqlmap到底发送了什么payload,这些payload是怎么

那么这个函数就是通过报错信息(就是上面的 payload) 来辨别数据库的类型,刚好我找的这个网站也是爆出了 MySQL 语句的错误,然后就通过正则 (sqlmap/data/xml/errors.xml) 识别出来啦,篇幅原因源码就不分析了。

sqlmap 的注入分析

  1. it looks like the back-end DBMS is 'MySQL'. Do you want to skip test payloads sp 
  2. ecific for other DBMSes? [Y/n] Y 
  3. for the remaining tests, do you want to include all tests for 'MySQL' extending 
  4. provided level (1) and risk (1) values? [Y/n] Y 

上面 sqlmap 已经得到了数据库的类型并且参数也是有效的,接下来往下走 sqlmap 就开始判断注入了(这里直接用-v3 参数显示 payload 更加的清晰)。

这一块也是大家最需要搞清楚的一部分,很多小伙伴看着感觉有注入,哎,上 sqlmap,然后基本上一片红,但是实际上,按照 sqlmap 对注入的分类,我们可以更加清晰的了解 sqlmap 到底做了什么,这些东西是从哪里出来。

首先要说一下,sqlmap 有一个 —technique 参数,在运行的整个过程中,也是按照这几类来检测的:

  1. --technique=TECH..  SQL injection techniques to use (default "BEUSTQ") 
  2. B: Boolean-based blind SQL injection(布尔型注入) 
  3. E: Error-based SQL injection(报错型注入) 
  4. U: UNION query SQL injection(可联合查询注入) 
  5. S: Stacked queries SQL injection(可多语句查询注入) 
  6. T: Time-based blind SQL injection(基于时间延迟注入) 
  7. Q: inline_query SQL injection(内联注入) 

对这几种注入还不熟练于心的小伙伴们要好好补一下基础。

那么这些主要的注入语句,我们可以在 sqlmap/data/xml/queries.xml 中查看了解,总结的还是挺全面的,这里截取一部分出来。

  1. <dbms value="MySQL"> 
  2.         <cast query="CAST(%s AS CHAR)"/> 
  3.         <length query="CHAR_LENGTH(%s)"/> 
  4.         <isnull query="IFNULL(%s,' ')"/> 
  5.         <delimiter query=","/> 
  6.         <limit query="LIMIT %d,%d"/> 
  7.         <limitregexp query="s+LIMITs+([d]+)s*,s*([d]+)" query2="s+LIMITs+([d]+)"/> 
  8.         <limitgroupstart query="1"/> 
  9.         <limitgroupstop query="2"/> 
  10.         <limitstring query=" LIMIT "/> 
  11.         <order query="ORDER BY %s ASC"/> 
  12.         <count query="COUNT(%s)"/> 
  13.         <comment query="-- -" query2="/*" query3="#"/> 
  14.         <substring query="MID((%s),%d,%d)"/> 
  15.         <concatenate query="CONCAT(%s,%s)"/> 
  16.         <case query="SELECT (CASE WHEN (%s) THEN 1 ELSE 0 END)"/> 
  17.         <hex query="HEX(%s)"/> 
  18.         <inference query="ORD(MID((%s),%d,1))>%d"/> 
  19.         <banner query="VERSION()"/> 
  20.         <current_user query="CURRENT_USER()"/> 
  21.         <current_db query="DATABASE()"/> 
  22.         <hostname query="@@HOSTNAME"/> 
  23. ...... 
  24. ...... 
  25. ...... 

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读