Python安全之绕过随机Token——使用Brup找出随机Token

背景:
这是某OA的一个页面,主要功能是供用户提交一些需求,页面有表单和文件上传接口,在对该页面进行安全测试的时候,我希望对这些用户输入表单进行存储型XSS的测试,然而由于页面使用了随机Token,致使用扫描器进行扫描时发现并不能批量写入。于是用Burp进行手工测试。
在这里插入图片描述

使用Repeater模块进行重放:
在对数据提交页面进行重放时,发现不成功。猜测是服务器端对请求数据的某个变量进行了验证。如图。
在这里插入图片描述

使用Comparer模块进行比较:
根据经验,第一反应判断是因为“n_s_token”这个参数起的作用。谨慎起见,还是重新在页面上填写测试数据,再提交一次。将两次提交的数据都发送都发送到Comparer模块进行比较。比较发现有3处变量是系统生成的数据不同,其它数据不同都是因为两次用户提交的数据不同而造成的,可以忽略,那么就只用关注3个用户自动生成的变量即可。这3处变量是:
1、Content-Type中的boundary
2、Cookie头中的td_cookie
3、正文数据部分的n_s_token
在这里插入图片描述
于是,不断重新在页面上填写测试数据,截断发送到Repeater模块进行修改,依次去掉或修改Content-Type中的boundary以及Cookie头中的td_cookie都能提交成功,而当修改了n_s_token的值时,发现提交不成功。于是判定就是n_s_token从中作祟。下一步就是找到这个n_s_token到底是从哪里来的了。

使用Proxy模块查找随机Token:
分析:
既然服务端验证的是n_s_token的值,那么这个随机token一定是服务端构造发到客户端,再由客户端的这个页面提取的,那么这个token一定存在于某个请求的返回数据(Response)中(当然我这样说可能有些绝对,但这是最直接最常用的方法)。
复制n_s_token的一个值dc75246e96b9738ee3f1d46ff8ed12be,切换到Proxy模块下的HTTP history选项卡,同时在数据展示区切换到Response选项卡,将值粘贴在最下面的搜索区。然后在数据请求区依次翻,最终找到这个Token是在一个页面的返回数据的input标签中,以隐藏表单的方式由服务器发送过来的。如图:
在这里插入图片描述
至此,随机Token的产生就被找到了,下一步就是利用python获取随机token然后进行批量提交数据了。请看我的下一篇Python安全之绕过随机Token——使用requests进行批量提交XSS Payload

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值