• Sqlmap与burpsuite动态更新某些参数


    有如下注入点:

    http://localhost/id=1&order_nu=1

     

     

    情况说明:

    id为注入点,  每一次注入时, order_nu不能跟上次的一样(假说这个order_nu为一个订单号, 提交一次时会进入数据库查询是否存在,存在时直接提示订单号存在并退出, 而且它不为注入点)。

    如:

    http://localhost/id=INJECT&order_nu=1 注入
    
    http://localhost/id=INJECT&order_nu=a 注入
    
    http://localhost/id=INJECT&order_nu=d 注入
    
    http://localhost/id=INJECT&order_nu=1 不能注入, 因为刚才运行过order_nu=1的语句了
    

     

     解决方按:

    每一次注入id参数的同时, 修改order_nu为不同的值。

    一开始用sqlmap tamper没能实现, 当时实现方法为:

    payload = payload+&order_nu=time.time()

    这只是一个伪代码, 也就是在现有的payload添加多一个参数order_nu, 且值为变动的time.time值。

    注入时语句写成:

    http://localhost/id=INJECT

    因为id为注入, 在payload中会自动加入参数: &order_nu=time.time()的值 。

    但最后未能成功, 因为 payload 会自动urlencode编码, 把  &order_nu=time.time中的 &  =  编码掉了。

    最终我的解决方案为:

    burpsuite 创一个宏来转换。

    要注意的是, 比如原始链接为:

    http://localhost/id=INJECT&order_nu=d 

    我们这里去掉后再重新访问一次, 之后再添加上原来的参数:

    这里的参数设置为页面中会自动动态更新的参数, 如这里的时间值。

    之后在sqlmap中设置 --proxy 代理, 指定要测试的参数(-p) id, 或跳过测试参数(--skip) order_nu, 经过 burpsuite即可。 下面是动态更新时的情况。

    补充:

    关于宏中参数的设置, 如果自带源码中没有, 可以像上面一样添加, 如果存在的话, 也可以像上面一样添加, burpsuite 会自动在原有的基础上自动进行更新

  • 相关阅读:
    《单元测试之道C#版——使用NUnit》测试哪些内容 RightBICEP
    《领域驱动设计》读书笔记(三) 消化知识
    法雷数列浅谈 RL
    四种常用最短路径算法模板 RL
    PIG 学习笔记1
    readme
    隐藏系统队伍框架
    关于时间的一些函数
    两个作用相同的宏.
    自动拾取确认,自动复活确认
  • 原文地址:https://www.cnblogs.com/perl6/p/7416441.html
Copyright © 2020-2023  润新知