欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

怎么样使用Python CGIHTTPServer躲避开CSRF tokens实现SQL注入

来源:本站整理 作者:佚名 时间:2017-10-18 TAG: 我要投稿

一、媒介
在Burp上,咱们能够应用多种方法来设置装备摆设宏(macro),以绕过HTML表单上的CSRF tokens,这样一来,咱们就能够应用Burp Active Scans、Burp Intruder、Burp Repeater,乃至也能够应用Burp Proxy停止渗入渗出测试。咱们也能够找到专为Intruder模块计划的Grep-Extract和pitchfork入侵攻击范例。固然,假如咱们乐意的话,也能够开发自己的Burp Extension。Sqlmap上也有-csrf-token和-csrf-url参数来敷衍相似场景,假如不应用这些敕令,咱们能够依照以前描写的方法来设置装备摆设Burp,而后在sqlmap中经由过程-proxy参数与Burp共同应用。
在本文中,咱们会先容另一种方法,那便是应用python中的CGIHTTPServer来实现这一义务。
二、试验情况
咱们结构了一个异常简略的PHP/mysql情况,登录后,你能够拜访某个受限地区。你能够拜访此链接获得试验所用的PHP代码,以便在其余场景做些改动或调剂。不要在乎代码细节,究竟我并非PHP专家,只是热衷于搭建满意必要的测试情况罢了。试验情况有助于咱们懂得测试进程,在实际场景中探求真正目的。
试验所用的CSRF tokens为一串随机天生的SHA256散列字符串,每一个HTTP哀求都对应一个分歧的tokens。

三、面对的成绩
不颠末特别设置装备摆设时,Burp不会检测到这个成绩。

同理,没有应用-csrf-token参数时,sqlmap也力所不及:

我应用了–technique、–dbms和-p参数来加速扫描速率。由于这是一个简略的基于布尔值的SQL注入(boolean-based SQLi),咱们只必要应用默许的-level 1参数便可。但咱们必要将-risk设置为3,由于只要应用较高的风险数值,咱们能力测试OR范例的SQL注入(OR boolean-based SQLi)场景。OR范例的SQL注入异常风险,由于这类语句能够使任何前提的成果为真。好比,在应用WHERE子句的UPDATE或DELETE语句中,应用这类注入方法,你很有可能会不小心更新数据库中一切用户的暗码,或许导出用户的凭证表,而这恰是你在渗入渗出测试中应当努力防止的成果。
在sqlmap中,咱们能够应用–csrf-token=”mytoken”参数检测到OR范例的SQL注入

由于这是一个登录验证表单,很显著会对应一条SELECT语句,这意味着应用最高的风险品级3不会带来任何风险。
固然,假如你有有用的凭证(实际渗入渗出测试中你很难具有这个前提),此时该场景也会受AND范例的SQL注入(AND boolean-based SQLi)影响。但是,即使我领有有用的凭证,我起首照样会应用另一个(有用的)用户名来探求可用的OR范例SQLi,免得不小心锁定账户(假如存在账户锁定机制的话)。
在sqlmap中,咱们能够应用–csrf-token=”mytoken”来检测AND范例的SQL注入

四、应用CGIHTTPServer
创立以下CGI剧本:

咱们将该剧本命名为mask.py,存放在xxx/cgi-bin/目次中,同时请确保.py文件为可执行文件。创立该文件后,咱们必要在xxx目次中运转python -m CGIHTTPServer敕令。默许情况下,服务器会在8000/tcp端口上监听。

起首,应用准确的暗码测试这个服务器:

而后,测试一下差错的暗码:

如今,无需特别设置装备摆设,咱们就能够应用Burp和sqlmap来检测SQL注入漏洞破绽bug。

这就似乎咱们添加了一个中间层,能够简化CSRF tokens给咱们测试进程所带来的复杂度,如今咱们无需锐意去提交这个token信息了。

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载