请选择 进入手机版 | 继续访问电脑版

落羽黑客论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 250|回复: 5

sqlmap开源渗透测试工具简要教程系列【7】

[复制链接]

66

主题

68

帖子

226

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
226
发表于 2021-2-10 10:58:54 | 显示全部楼层 |阅读模式
  1. HTTP方法
  2. 选项: --method

  3. sqlmap自动检测将在HTTP请求中使用的正确HTTP方法。但是,在某些情况下,需要强制使用PUT自动机未使用的特定HTTP方法(例如)。使用此选项(例如--method=PUT)是可能的。

  4. HTTP数据
  5. 选项: --data

  6. 默认情况下,用于执行HTTP请求的HTTP方法是GET,但是您可以通过提供要在POST请求中发送的数据,将其隐式更改为POST。这些数据(即那些参数)将针对SQL注入以及任何提供的GET参数进行测试。

  7. 例如:

  8. $ python sqlmap.py -u "http://www.target.com/vuln.php" --data="id=1" -f --banne\
  9. r --dbs --users
  10. 参数分割符
  11. 选项: --param-del

  12. 在某些情况下,&需要覆盖默认参数定界符(例如,GET和POST数据中的参数),以使sqlmap能够正确拆分和分别处理每个参数。

  13. 例如:

  14. $ python sqlmap.py -u "http://www.target.com/vuln.php" --data="query=foobar;id=\
  15. 1" --param-del=";" -f --banner --dbs --users
  16. HTTPCookie头
  17. 选项和开关:--cookie,--cookie-del,--live-cookies,--load-cookies和--drop-set-cookie

  18. 这些选项和开关可以在两种情况下使用:

  19. 该Web应用程序需要基于cookie进行身份验证,并且您拥有此类数据。
  20. 您想要检测和利用此类标头值的SQL注入。
  21. 不论哪种原因,您都需要发送带有sqlmap请求的cookie,要执行的步骤如下:

  22. 使用您喜欢的浏览器登录到应用程序。
  23. 从浏览器的首选项或HTTP代理屏幕中获取HTTP Cookie,并将其复制到剪贴板。
  24. 返回您的Shell并通过将剪贴板粘贴为option的值来运行sqlmap --cookie。
  25. 注意,HTTPCookie标头值通常是由分离的;字符,不通过&。sqlmap也可以将它们识别为单独的集合parameter=value,以及GET和POST参数。如果分隔符不是分隔符,则;可以使用option指定--cookie-del。

  26. 如果在通信过程中的任何时间,Web应用程序都响应Set-Cookie标头,则sqlmap将自动在所有其他HTTP请求中将其值用作Cookie标头。sqlmap还将自动测试这些值以进行SQL注入。通过提供开关可以避免这种情况--drop-set-cookie-sqlmap将忽略任何即将到来的Set-Cookie标头。

  27. 反之亦然,如果您提供Cookie带有选项的HTTP标头,--cookie并且目标URLSet-Cookie随时发送HTTP 标头,则sqlmap将询问您用于以下HTTP请求的cookie集合。

  28. Option--live-cookies可用于提供cookie文件,该cookie文件将用于加载最新值。这意味着将在每个请求之前读取同一文件,以获取HTTPCookie标头的最新值。

  29. 还有一个选项--load-cookies可用于提供包含Netscape / wget格式的cookie的特殊文件。

  30. 请注意,Cookie如果--level设置为2或更高,还将针对SQL注入测试HTTP标头。请阅读下面的详细信息。

  31. HTTPUser-Agent头
  32. 选项和开关:--user-agent和--random-agent

  33. 默认情况下,sqlmap使用以下User-Agent标头值执行HTTP请求:

  34. sqlmap/1.0-dev-xxxxxxx (http://sqlmap.org)
  35. 但是,可以--user-agent通过提供自定义User-Agent作为选项的参数来伪造该选项。

  36. 此外,通过设置开关--random-agent,SqlMap的将随机选择一个User-Agent从./txt/user-agents.txt文本文件,并使用它的会话中的所有HTTP请求。

  37. 一些站点执行服务器端对HTTPUser-Agent标头值的检查,如果User-Agent未提供有效值,该值的值不可预期或Web应用程序防火墙或类似的入侵防御系统将其列入黑名单,则HTTP响应将失败。在这种情况下,sqlmap将显示以下消息:

  38. [hh:mm:20] [ERROR] the target URL responded with an unknown HTTP status code, try to
  39. force the HTTP User-Agent header with option --user-agent or --random-agent
  40. 请注意,User-Agent如果--level设置为3或更高,还将针对SQL注入测试HTTP标头。请阅读下面的详细信息。

  41. HTTPHost头
  42. 选项: --host

  43. 您可以手动设置HTTPHost标头值。默认情况下,HTTPHost标头是从提供的目标URL解析的。

  44. 请注意,如果将HTTPHost标头--level设置为5,还将针对SQL注入测试HTTP标头。请阅读下面的详细信息。

  45. HTTPReferer头
  46. 选项: --referer

  47. 可以伪造HTTPReferer标头值。默认情况下,没有HTTPReferer标头在HTTP请求发送,如果没有明确设定。

  48. 请注意,Referer如果--level设置为3或更高,还将针对SQL注入测试HTTP标头。请阅读下面的详细信息。

  49. 额外的HTTP标头
  50. 选项: --headers

  51. 通过设置option可以提供额外的HTTP标头--headers。每个标头都必须用换行符分隔,从配置INI文件中提供标头要容易得多。您可以查看sqlmap.conf这种情况的样本文件。

  52. 针对MySQL目标的示例:

  53. $ python sqlmap.py -u "http://192.168.21.128/sqlmap/mysql/get_int.php?id=1" -z \
  54. "ign,flu,bat,tec=E" --headers="Host:www.target.com\nUser-agent:Firefox 1.0" -v 5
  55. [...]
  56. [xx:xx:44] [TRAFFIC OUT] HTTP request [#5]:
  57. GET /sqlmap/mysql/get_int.php?id=1%20AND%20%28SELECT%209351%20FROM%28SELECT%20C\
  58. OUNT%28%2A%29%2CCONCAT%280x3a6161733a%2C%28SELECT%20%28CASE%20WHEN%20%285473%20\
  59. %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%\
  60. 20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2\
  61. 0%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20\
  62. %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%\
  63. 20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2\
  64. 0%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20\
  65. %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%\
  66. 20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2\
  67. 0%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20\
  68. %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%20%20%20%20%20%20%20%\
  69. 20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2\
  70. 0%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20\
  71. %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%\
  72. 20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2\
  73. 0%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20\
  74. %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%\
  75. 20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2\
  76. 0%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20\
  77. %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%\
  78. 20%20%20%20%20%20%20%20%20%20%20%205473%29%20THEN%201%20ELSE%200%20END%29%29%2C\
  79. 0x3a6c666d3a%2CFLOOR%28RAND%280%29%2A2%29%29x%20FROM%20INFORMATION_SCHEMA.CHARA\
  80. CTER_SETS%20GROUP%20BY%20x%29a%
  81. 29 HTTP/1.1
  82. Host: www.target.com
  83. Accept-encoding: gzip,deflate
  84. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  85. User-agent: Firefox 1.0
  86. Connection: close
  87. [...]
  88. HTTP协议认证
  89. 选项:--auth-type和--auth-cred

  90. 这些选项可用于指定实现哪个HTTP协议身份验证后端Web服务器以及将用于执行对目标应用程序的所有HTTP请求的有效凭据。

  91. 支持的三种HTTP协议身份验证机制是:

  92. Basic
  93. Digest
  94. NTLM
  95. 凭据的语法为username:password。

  96. 有效语法示例:

  97. $ python sqlmap.py -u "http://192.168.136.131/sqlmap/mysql/basic/get_int.php?id\
  98. =1" --auth-type Basic --auth-cred "testuser:testpass"
  99. HTTP协议私钥认证
  100. 选项: --auth-file

  101. 如果Web服务器需要适当的客户端证书和用于身份验证的私钥,则应使用此选项。提供的值应为key_file包含您的证书和私钥的PEM格式。

  102. key_file.txt与兼容的生成示例--auth-file:

  103. $ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout auth_file.key -out auth_file.pem &&\
  104. cat auth_file.key auth_file.pem > auth_file.txt && cat auth_file.txt
  105. Generating a 2048 bit RSA private key
  106. .........+++
  107. ...........+++
  108. writing new private key to 'auth_file.key'
  109. -----
  110. You are about to be asked to enter information that will be incorporated
  111. into your certificate request.
  112. What you are about to enter is what is called a Distinguished Name or a DN.
  113. There are quite a few fields but you can leave some blank
  114. For some fields there will be a default value,
  115. If you enter '.', the field will be left blank.
  116. -----
  117. Country Name (2 letter code) [AU]:
  118. State or Province Name (full name) [Some-State]:
  119. Locality Name (eg, city) []:
  120. Organization Name (eg, company) [Internet Widgits Pty Ltd]:
  121. Organizational Unit Name (eg, section) []:
  122. Common Name (e.g. server FQDN or YOUR name) []:
  123. Email Address []:
  124. -----BEGIN PRIVATE KEY-----
  125. MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCWM28J1ua2DINf
  126. VLU28oeJwQidL9vTRoGJR5pfBU6Mhu33Cv6RuVEJAfMWEKYDSbqbrEyy1zUiNTcG
  127. mEd026Peq0SPRvsKsVb6K+EHVF3r+6ExXHEctPRbh2GIzi2kCQMkdHDg+DhmieQ9
  128. 9Haxk9IREJZTo2vC1ohvM5M/yubw4iwgMlDaW+4s82OgOcCLjewbPLFZU5gMV+8W
  129. XLKUttUYwV79duPbEvG9S1soNFHhu/MOcNiKJpH2zSegd9Dk5/OJRGX5xEiv7AyL
  130. 4shQLpAqn5kuZcm2K+ib/4x/Rw2yT1Slh2tQIi8RcwlYyycOrSqvhW7vvdqkblbY
  131. mQQyR2ChAgMBAAECggEBAIqvMveC1cOCCksbi7cQeNVYxvtcFT0e/LwkwQS7gat/
  132. anmQTT2APrJyemEFPkQK76KNlMQMsaLEP+p28IOVydjvin5Aq8tTs1uK6Fw8Kfya
  133. elt5X3eCHZ3lgskuljW/nIcsfI08o9cJuxT5hB6yvmPDTQos+nMMYy1KEcv1LQd8
  134. Y+QAmVQqMF5Nyf8Q6op6hWZIIJY5NDbRE0zYzhGcHWg2798Dx1sO0HT6TD8cNP8H
  135. AVp/V21tzpmFpe0A7NajgYEjkij6fg+6mG0j0WZdWymYXDeiTdDpwzs/SPRevBLn
  136. Okp/6vqtdekMeYL591MNBl8GRZpJW9gNLRX7vQ6YYAECgYEAxGV9e85GpLUd/uUb
  137. 1MvGajd+HtN/uoWH1ySG34vi3q/dDKBehry2yoDUosxXf9vbH0IrvaXnO8yXGflS
  138. wb2TELLezGWbw6kPaw2XIgL4elO5TPh2rNJwz1wOhv3FT2XSGJbXx/CED3mL7MGs
  139. qwRU/bRrNV7RmzV2veThlLCLjZECgYEAw8jm7vOzQQnqEjs0wlfJmzOyFqilYvEP
  140. 8v7HxDv1M7e7M0TqLECET9VlQE5spGuzEWN7/iMtE8xxnz2n/vGnGAV8qv1LJYrA
  141. TWQMTIC6V9/jKM8wNOfT7Eh1rJ1cty87yokXpy/cdmkv7yxb1b2zuBk8/1nlYqA0
  142. 5uqb345eWhECgYEAmoXv0TVfR8BpNWA2IZujJXc7+C0YVj0xwAixRbneaq+cEI8t
  143. UH2ypGnw45Y7UhI9ub5qg/DAmsBCMuGER4NM7tqNiex4Pd4Kj4RF4TDNKBIvvWvQ
  144. k/GPaNdZZsTMNcg7IbWtWVbX0QUlHsbTgEsMRAFsSLWt3ZyXLJmlE0REyMECgYEA
  145. oCqEscrwRC7GLK/+01ZZ+fvqnxrMYgrvj0zbRDAAwpR2MtUX9ae6Fk1vDZKa0k/B
  146. KGKIlzlTsTS5ZxpbivdKSR6EBKY+ibHe6/EDFrrgtu7TuRj2SPG2rz//9Hyv0rRz
  147. Z5eLoBxJcR1QN4vEfTE6C0uqWQPD4lFJtfcMGXEwwuECgYAK+4gwPBlrKClrRtDc
  148. 7Fnq8RLYeZRbM5WEmTHfRnlYylniMsj2K20H8ln8pdOqCE4iJn0SezIQIaAtcwMP
  149. WQt15kgJgLwM/uBtqDeWRpTEotVMFXQbZImobjpXUhTqu0NWBwbypM/zarfRWPJ4
  150. fJkrlA16caVj3qGaX1lkm06OAA==
  151. -----END PRIVATE KEY-----
  152. -----BEGIN CERTIFICATE-----
  153. MIIDXTCCAkWgAwIBAgIJALTHPlkIs/+KMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
  154. BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
  155. aWRnaXRzIFB0eSBMdGQwHhcNMTgwODIyMDc0NTQxWhcNMTkwODIyMDc0NTQxWjBF
  156. MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50
  157. ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
  158. CgKCAQEAljNvCdbmtgyDX1S1NvKHicEInS/b00aBiUeaXwVOjIbt9wr+kblRCQHz
  159. FhCmA0m6m6xMstc1IjU3BphHdNuj3qtEj0b7CrFW+ivhB1Rd6/uhMVxxHLT0W4dh
  160. iM4tpAkDJHRw4Pg4ZonkPfR2sZPSERCWU6NrwtaIbzOTP8rm8OIsIDJQ2lvuLPNj
  161. oDnAi43sGzyxWVOYDFfvFlyylLbVGMFe/Xbj2xLxvUtbKDRR4bvzDnDYiiaR9s0n
  162. oHfQ5OfziURl+cRIr+wMi+LIUC6QKp+ZLmXJtivom/+Mf0cNsk9UpYdrUCIvEXMJ
  163. WMsnDq0qr4Vu773apG5W2JkEMkdgoQIDAQABo1AwTjAdBgNVHQ4EFgQUVvHI/2qF
  164. kmRCEWlWB+ZvJzWTnUkwHwYDVR0jBBgwFoAUVvHI/2qFkmRCEWlWB+ZvJzWTnUkw
  165. DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAg5tmkM75/NEEymu0ublj
  166. c2R1/ZxwbKMjg98KxLqGFJbPVRG0qgIy+uc+Gvh6FEgPF22i4L9DROfuDQW3YSJ6
  167. x3JnJxLsU+jjXxtN7hNwoQziQkicKr0y47TjqOKLlBlKTbdnr74nJXSYQhi4qEFE
  168. qgrUG7ScitgLvcf2sDVf9L2SUsH5iRK+HlgYEtSKhUl5SkLapcUUF+GmectUOkm7
  169. m7Z8gelenVUerLojnQL2avKD07hWTTGkgX2PV8hdun0WIvBLWAcJN+6T9sdakJZZ
  170. qJjFQBXjcxwgVe0vB0vJmqa5lj9OymQnBMjp+3zpUtDJNH2M1qySbU6tGEX1wsW/
  171. VA==
  172. -----END CERTIFICATE-----
  173. 忽略(有问题的)HTTP错误代码
  174. 选项 --ignore-code

  175. 如果您要测试的站点偶尔返回导致常规sqlmap运行出现问题的HTTP错误代码(例如401(未经授权)),而您想忽略它并继续进行测试,则可以使用option --ignore-code

  176. HTTP(S)代理
  177. 选项和开关:--proxy,--proxy-cred,--proxy-file和--ignore-proxy

  178. 可以提供HTTP(S)代理地址,以通过HTTP(S)请求通过option将其传递到目标URL --proxy。HTTP(S)代理值的语法为http://url:port。

  179. 如果HTTP(S)代理需要身份验证,则可以将格式的凭据提供username:password给option --proxy-cred。

  180. 如果您要使用(一次性)代理列表,则在出现任何连接问题(例如,入侵IP地址--proxy-file被阻止)时跳至下一个代理,可以通过提供包含大量代理列表的文件的文件名来使用该选项。

  181. 开关--ignore-proxy,当你想要忽略一套全系统HTTP(S)代理服务器设置进行针对局域网的目标部分的SqlMap应该被使用。

  182. Tor匿名网络
  183. 开关和选项:--tor,--tor-port,--tor-type和--check-tor

  184. 如果出于任何原因需要保持匿名,而不是通过单个预定义的HTTP(S)代理服务器传递,则可以按照Tor安装指南中的说明在计算机上配置Tor客户端和Privoxy(或类似产品)。然后,您可以使用开关,并且sqlmap会尝试自动设置Tor代理连接设置。--tor

  185. 如果要手动设置使用的Tor代理的类型和端口,则可以使用选项--tor-type和--tor-port(例如--tor-type=SOCKS5 --tor-port 9050)来完成。

  186. 强烈建议您--check-tor偶尔使用以确保所有设置均正确。在某些情况下,Tor捆绑包(例如Vidalia)配置错误(或重置先前设置的配置)会给您一种匿名感。使用此开关sqlmap通过向官员发送单个请求来检查一切是否正常,您是否在使用Tor?在任何目标请求之前的页面。万一检查失败,sqlmap将警告您并突然退出。

  187. 每个HTTP请求之间的延迟
  188. 选项: --delay

  189. 可以指定在每个HTTP(S)请求之间保留的秒数。有效值为浮点型,例如0.5半秒。默认情况下,不设置延迟。

  190. 超时连接之前等待的秒数
  191. 选项: --timeout

  192. 在考虑HTTP(S)请求超时之前,可以指定等待的秒数。有效值为浮点型,例如10.5表示十秒半。默认情况下,设置为30秒。

  193. HTTP连接超时时的最大重试次数
  194. 选项: --retries

  195. HTTP(S)连接超时时,可以指定最大重试次数。默认情况下,它最多重试3次。

  196. 随机更改给定参数的值
  197. 选项: --randomize

  198. 可以指定要在每次请求期间随机更改其值的参数名称。长度和类型将根据提供的原始值保留。

  199. 使用正则表达式从提供的代理日志中过滤目标
  200. 选项: --scope

  201. -l您可以使用有效的Python正则表达式指定用于过滤所需主机的正则表达式,而不是使用从提供的日志中解析的所有主机。

  202. 有效语法示例:

  203. $ python sqlmap.py -l burp.log --scope="(www)?\.target\.(com|net|org)"
  204. 避免过多的请求失败后会话被破坏
  205. 选项:--safe-url,--safe-post,--safe-req和--safe-freq

  206. 有时,如果执行一定数量的不成功请求,则介于两者之间的Web应用程序或检查技术会破坏会话。这可能在sqlmap的检测阶段或利用任何一种盲目SQL注入类型时发生。原因是SQL有效负载不一定返回输出,因此可能向应用程序会话管理或检查技术发出信号。

  207. 要绕过目标设置的限制,您可以提供任何(或组合)选项:

  208. --safe-url:测试期间经常访问的URL地址。
  209. --safe-post:HTTP POST数据发送到给定的安全URL地址。
  210. --safe-req:从文件加载并使用安全的HTTP请求。
  211. --safe-freq:测试两次访问给定安全位置之间的请求。
  212. 这样,sqlmap将在每个预定义数量的请求中访问某个安全URL,而无需对其进行任何类型的注入。

  213. 关闭参数值的URL编码
  214. 开关: --skip-urlencode

  215. 根据参数的位置(例如GET),其值可以默认为URL编码。在某些情况下,后端Web服务器不遵循RFC标准,并要求值以其原始非编码形式发送。使用--skip-urlencode这些类型的案件。
复制代码


回复

使用道具 举报

0

主题

2

帖子

28

积分

新手上路

Rank: 1

积分
28
发表于 2021-2-10 10:59:12 | 显示全部楼层
你好棒!!
回复

使用道具 举报

0

主题

2

帖子

32

积分

新手上路

Rank: 1

积分
32
发表于 2021-2-10 10:59:34 | 显示全部楼层
转发了!!
回复

使用道具 举报

0

主题

1

帖子

33

积分

新手上路

Rank: 1

积分
33
发表于 2021-2-10 10:59:54 | 显示全部楼层
太棒了!!
回复

使用道具 举报

0

主题

2

帖子

34

积分

新手上路

Rank: 1

积分
34
发表于 2021-2-10 11:00:18 | 显示全部楼层
赞!赞!!
回复

使用道具 举报

0

主题

1

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2021-2-10 11:00:34 | 显示全部楼层
不错呀!!
回复

使用道具 举报

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

本版积分规则

QQ|手机版|落羽黑客论坛

GMT+8, 2021-6-16 22:57 , Processed in 0.044619 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表