以前看了个视频教程叫抓包改包上传,今日实践总结发现错误不少。觉得书还是比网上那些所谓的教程靠谱的多!
实验环境:IIS6 asp脚本语言
工具:BurpSuite
以下实验只针对IIS6.0服务器下ASP解析
1.POST请求:
图1
图2
图1 中修改一个字符为空字符,即对应HEX 00。用Visual Studio进行调试,发现表单参数中只有1个:xxx。
通过把空字符修改为其他字符和在其他位置修改字符,可以得出服务器在解析HTTP请求时,遇到空字符(0x00)时就会认为HTTP请求到头了,后面的不再解析(get,post一样)。
2.GET
get请求中,经常看到构造%00截断字符串
图3
图4
这样请求的话看到有2个参数,但是获取xxx参数对应的键值时,由于%00被自动解析成空字符,所以后面的aa被截断了,name变量的值到空字符结束。(适用于get,post)
补充:在PHP中如果请求参数中含有%00,不会出现截断情况,拿上面情况举例,它获取的xxx值为:../../picture/test.asp\0aa,把空字符用\0表示。