webshell免杀之传参方式

1.Cookie

由于Cookie基本上是每个web应用都需要使用到的,php应用在默认情况下,在Cookies请求头中会存在一个PHPSESSID=xxxx这样的cookie,其实这个就可以成为我们的传参位置

webshell免杀之传参方式_第1张图片使用burp抓包webshell免杀之传参方式_第2张图片将内容改成base64加密后的命令

webshell免杀之传参方式_第3张图片

可以看到已经执行成功了,可以看到这个迷惑去非常强,如果不仔细排查是不容易发现的,由于webshell的session和网站本身业务并没有关系,所以这个PHPSESSID可以随意修改。

2.Session

session的传参方式其实算是一种间接传产方式,由于session的内容是需要通过源码设置的,并不能想cookie一样直接在请求头中修改,因此需要准备两个文件,一个是将输入的参数传入session,另一个就是将session中的内容取出并执行命令

这里依旧沿用上面的cookie传参

给session传入参数

webshell免杀之传参方式_第4张图片取出session内容并执行,其实下面的代码是可以直接插入到正常页面中的,增加迷惑性,因为一般正常页面返回的html代码是比较多的,如果我们将内容回显的正常页面当中是比较难发现的

webshell免杀之传参方式_第5张图片在test.php下通过cookie添加session,注意这个PHPSESSID的值其实就是一个session文件,每当有一个新的sessionid都会生成一个新的session文件,因此这个文件名我们是可以随意修改的,在这里的sessionid不但是文件名,而且也是我们的base64加密后的命令,这里只需要了解一下即可

webshell免杀之传参方式_第6张图片访问命令执行的页面,并添加其cookie,即可跨页面传递参数,如果用这种方式传参是比较难发现的

webshell免杀之传参方式_第7张图片

总结:session传参其实就是一种参数转移的感觉

3.自定义头

自定义请求头其实也是作为一种伪装的请求方式,你可以选择完全自定义一个请求头进行参数传递,但是很多waf也会检测一些没出现过的请求头容易被识别出来,且一旦在日志中被找到一个以这种方式传参,很容易就能查找到使用数据包,还是不稳当,与cookie相比,cookie本身就是一堆随机数不好区分

webshell免杀之传参方式_第8张图片

webshell免杀之传参方式_第9张图片

4.php伪协议

webshell免杀之传参方式_第10张图片

webshell免杀之传参方式_第11张图片

webshell免杀之传参方式_第12张图片

你可能感兴趣的:(java,开发语言,webshell,网络,安全)