首页>文档>sqlmap>sqlmap性能优化配置

sqlmap性能优化配置

性能优化是把双刃剑,有好的一面也有坏的一面。好的一面就是能提升网站性能,坏的一面就是配置麻烦,或者要遵守的规则太多。并且某些性能优化规则并不适用所有场景,需要谨慎使用,请读者带着批判性的眼光来阅读本文。

批量优化

开关:-o 设置这个开关表示隐含开启下面对应的选项和开关:

  • --keep-alive
  • --null-connection
  • --threads=3 默认值,可以设置更大值。

查看下面内容获取更多关于开关设置的详情。

HTTP Keep-Alive持久化连接

在早期的HTTP/1.0中,每次http请求都要创建一个连接,而创建连接的过程需要消耗资源和时间,为了减少资源消耗,缩短响应时间,就需要重用连接。在后来的HTTP/1.0中以及HTTP/1.1中,引入了重用连接的机制,就是在http请求头中加入Connection: keep-alive来告诉对方这个请求响应完成后不要关闭,下一次咱们还用这个请求继续交流。协议规定HTTP/1.0如果想要保持长连接,需要在请求头中加上Connection: keep-alive,而HTTP/1.1默认是支持长连接的,有没有这个请求头都行。

开关:--keep-alive这个开关参数设置 sqlmap 使用 HTTP(s) 持久化连接。值得注意的是,这个开关不能够和 --proxy 一起使用。

HTTP NULL 连接

开关:--null-connection

在 HTTP 请求中,存在可以获取 HTTP 响应大小而无须获取整个 HTTP 实体的特殊类型。这个技术可用于 SQL 盲注中,以区分响应结果是 True 还是 False。如果开启了这个开关,sqlmap 会测试并利用两种不同的 NULL 连接技术:RangeHEAD。如果目标服务器能够满足其中之一的请求方式,那将能够减小使用的带宽,加速整个测试过程。这些技术的相关详情可见白皮书提升 SQL 盲注的性能——Take 2(带宽)。值得注意的是,这个开关不能和 --text-only 一起使用。

并发 HTTP(S) 请求

选项:--threadssqlmap 中支持设定 HTTP(S) 请求最大并发数。

这个特性依赖于多线程,因而继承了多线程的优点和缺陷。当数据是通过 SQL 盲注技术,或者使用暴力破解相关开关获取时,可以运用这个特性。对于 SQL 盲注技术,sqlmap 首先在单线程中计算出查询目标的长度,然后启用多线程特性,为每一个线程分配查询的一个字符。

当该字符被成功获取后,线程会结束并退出——结合 sqlmap 中实现的折半算法,每个线程最多发起 7 次 HTTP(S) 请求。考虑运行性能和目标站点的可靠性因素,sqlmap 最大的并发请求数只能设置到 10。值得注意的是,这个选项不能跟 --predict-output 一起使用。

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索