作者:空气炮
链接:https://zhuanlan.zhihu.com/p/51756921
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
如果对一个sql注入工具打分,满分是100分,相信大家都可以写个工具达到60分,但想要接下来40分就需要比之前多几倍的努力,对于技术的追求,也不应只懂得泛泛,更应该精益求精。
auth权限验证
首先在sqlmap.conf
可以找到和auth权限验证的相关参数
# HTTP Authentication type. Useful only if the target URL requires
# HTTP Basic, Digest or NTLM authentication and you have such data.
# Valid: Basic, Digest, NTLM or PKI
authType =
# HTTP authentication credentials. Useful only if the target URL requires
# HTTP Basic, Digest or NTLM authentication and you have such data.
# Syntax: username:password
authCred =
# HTTP Authentication PEM private/cert key file. Useful only if the target URL requires
# PKI authentication and you have such data.
# Syntax: key_file
authFile =
支持basic,digest,NTLM 证书等权限验证
这个实现思路一想就可以想到,就是把这些东西存到一个全局变量,当然要访问网页的时候,封装一个统一的访问函数,然后在函数里判断一下就好了。但sqlmap似乎没有这样做。
有兴趣可以看一下_setHTTPHandlers()
函数的实现,精简代码如下
handlers = filter(None, [multipartPostHandler, proxyHandler if proxyHandler.proxies else None, authHandler, redirectHandler, rangeHandler, httpsHandler])
opener = urllib2.build_opener(*handlers)
urllib2.in