目录
一、习题通关
第2页
第3页
二、课程内容
一、习题通关简单到会用burpsuite改包就能过
第2页要求:绕过4种输入类型的限制
4种限制分别是:
(1)菜单(标签)
(2)单选(标签,type="radio")
(3)多选(标签,type="checkbox")
(4)有长度限制的输入()
实质:绕过html限制
解题过程:
1、准备好burpsuite,网页上点submit提交,burpsuite抓包
2、proxy模块找到下图所示的这个报文,send to repeater
3、改包,前三个参数的值改成网页限制的值之外的字符串,最后一个参数改成一个长度大于5的字符串,即可通关
要求:发送的请求中所有参数的值都不符合正则表达式。
一共有7个正则表达式,意思依次是:(1)3个小写字母(2)3个数字(3)只允许大小写字母、数字和空格(4)1~9其中一个的英文单词(5)5个数字(6)5个数字或者5个数字-4个数字(7)以2-9其中一个数字开头,后接两个数字,有或者没有短横线都行,后接3个数字,有没有短横线都行,后接4个数字
实质:绕过前端脚本检查
解题过程:
1、准备好burpsuite,网页上点submit提交,burpsuite抓包
2、proxy模块找到下图所示的这个报文,send to repeater
3、除了error的值不改,其他字段都改成不符合正则表达式的值,send后即可通关
注意:怎么判断这边有前端脚本检查的呢?
主要依据是burpsuite抓到的报文中比网页提交的参数多一个error参数,这个参数如果设置为1,就会被判定为通关失败,如下图所示。可见后端是根据前端传来的error参数的值来进行判断的。
题外话:error参数在一个隐藏域里面,网页上submit按钮那行鼠标点右键,再点 检查,可以看到
就一个道理,后端不要信任前端的检查结果,如果要求用户输入特定类型或格式的数据,就算前端有检查,服务器端也要再检查一遍。