网站菜单

<复现>利用http请求走私绕过防火墙

作者:edword

0x00概述

本人小白一个本着对网络安全的好奇在默默努力着,最近在研究过waf的一些奇淫技巧,偶然一天收到星总推荐的一遍关于http请求走私的文章,让人眼前一亮,于是手痒并记录一下。

0x01原理

给服务器发送payload数据包,使得waf无法识别出payload,当apache,tomcat等web容器能正常解析其内容(嗯。。大概就是这样)

0x01实验环境

虚拟机win7+phpstydy+某狗4.0网站防火墙(高级)+sqli-labs-master.。为方便演示,存在sql注入的脚本中使用$_REQUEST["id"]来接收get,或者post提交的数据。这里采用sqli-labs-master.第二关整形注入。以下是修改的代码。
<复现>利用http请求走私绕过防火墙的照片 - 1
<复现>利用http请求走私绕过防火墙的照片 - 2
开启验证下,发现此时已经可以post数据。get也可以,安全狗正常工作。
<复现>利用http请求走私绕过防火墙的照片 - 3
<复现>利用http请求走私绕过防火墙的照片 - 4
首先正常抓包这里我用的burp抓取本次的post包。
<复现>利用http请求走私绕过防火墙的照片 - 5
使用分块传输协议只需在请求头部加入:Transfer-Encoding: chunked。就代表这个报文采用了分块编码。这时,post请求报文中的数据部分需要改为用一系列分块来传输。每个分块包含十六进制的长度值和数据,长度值独占一行,长度不包括它结尾的,也不包括分块数据结尾的网上说还要关闭自动更新长度,但是我在测试的时候发现不关也是可以的。为了更好的演示我关闭了,位置在红框标注的地方。(去掉打勾就可以了)
<复现>利用http请求走私绕过防火墙的照片 - 6
然后发包就可以了这里有个坑,在加入Transfer-Encoding: chunked之后一定要在id=1后面加入两个换行。一定要在id=1后面加入两个换行。一定要在id=1后面加入两个换行。重要的事情要说三遍。否则你会像我这样一直wating..
<复现>利用http请求走私绕过防火墙的照片 - 7
加入换行之后,就可以正常显示了。
<复现>利用http请求走私绕过防火墙的照片 - 8
加入字符长度,当字符长度为4的时候正常显示,于是修改字符长度为3发现报错(这里的4就是id=1的长度)报错是因为只读取到id=.
<复现>利用http请求走私绕过防火墙的照片 - 9
<复现>利用http请求走私绕过防火墙的照片 - 10
原理大概就是这。接下来就可以使用这个思路绕过狗狗了。直接使用 id =1 union select 1,2,user()会被拦截。
<复现>利用http请求走私绕过防火墙的照片 - 11
按照刚才的思路我们可以把注入语句分成几个模块写。这里我分为了6个模块结果获取到了用户名。
<复现>利用http请求走私绕过防火墙的照片 - 12
分块还有很多种姿势,本文只是记录从http走私以及记录其中一种利用方式而已,自己复现了一波,做了笔记,最后感谢各位师傅们的文章

https://www.cnblogs.com/backlion/p/10569976.html

https://secquan.org/Discuss/1071008

显示评论 (0)

文章评论

相关推荐

Thinkphp5挖洞记录

闲来无事,盒子上申请了下项目,发现二个thinkPHP的站,版本还都挺老,记录一下反弹shell的过程 盒子项目申请一过,准时准点往前冲,发现测试范围只有一个子域名,稍微过了一下,前排明显的漏洞应该大…

记一次某SRC的漏洞挖掘

起因: 最近闲来无事,无意中发现某src搞活动双倍奖励,一下激起了我的动力,双倍奖励啊,又到了低危小王子浑水摸鱼的时候了。 过程: 话不多说,直接开干,子域名走一波。发现某域名命名很奇怪,然后titl…