Skip to content

Latest commit

 

History

History
165 lines (98 loc) · 4.05 KB

README-standward.md

File metadata and controls

165 lines (98 loc) · 4.05 KB

awd-submit-flag

依赖

  • python2

  • requests(pip安装即可)

  • ConfigParser(pip安装即可)

  • pwntools(pwn题依赖,pip安装即可)

说明

该项目主要是用来在AWD比赛中批量自动提交flag时使用的。

使用方法

配置好config.conf之后,根据脚本的功能,修改pwn_attack.pyweb_attack.pyflag.txt,之后直接python automatic.py即可。

提前使用env_test环境来进行本地测试。

运行效果:

image-20201019005944352

2

文件调用

文件名 用途
config.conf 配置文件,所有的参数配置
resolve_config.py 解析config
pwn_attack.py 调用pwn攻击获取flag
web_attack.py 通过web访问获取flag
submit.py 向平台提交flag
log.py 生成日志
automatic.py 主要运行文件

config.conf 详解

ip module

  • ip_list 所有靶机的ip列表(因为现在很多比赛的ip非常乱,所以自行生成列表使用比较稳妥,注意别加入自己的靶机地址)

script_function_module

  • script_function 脚本功能(web & pwn & local)
    • local: 从本地的flag文件中读取flag提交(用于攻击脚本无法自动化的情况)
    • web: 根据url进行攻击,并访问获取flag
    • pwn: 根据ip与port,利用exp批量攻击获取flag

submit_module

  • submit_method 可以通过curl或requests来进行提交,看比赛运维平台,详细在submit.py里修改

    • curl: 使用curl提交flag
    • requests: 使用requests模拟web访问提交flag
  • submit_addr 平台提交flag的地址

  • token 队伍token

  • success_request 判断提交的flag正确的字段(需要根据手动提交的结果来确定,或根据官方文档来确定)

  • failed_request 判断提交的flag错误或其他故障的字段(需要根据手动提交的结果来确定,或根据官方文档来确定)

  • round_time 比赛每轮时间,单位秒

  • rounds 比赛总轮次(可以不配置,意义不大)

  • submit_wait 每次提交flag之间的停顿间隔(秒),部分平台会是提交间隔,没有就写0

local_flag module

  • flag_file 本地flag列表文件保存的位置

web && PWN

  • web_attack.pypwn_attack.py中进行修改

单次运行

当需要单次运行或进行单次测试时,可以对各个模块独立进行单次测试: pwn:python pwn_attack.py 10.10.10.10 (测试ip是否能够拿到flag) web:python web_attack.py 10.10.10.10 (测试ip是否能够拿到flag) submit:python submit.py flag{123123} (测试提交flag是否成功,需要在config.conf中先配置好submit地址等)

备注

  • 最好提前使用env_test环境进行测试一下,熟悉一下使用方法。env_test的使用方法在env_test/README.md
  • 友情提醒,使用前git pull一下,代码会不定期更新。
  • 当使用web模块时,一定要修改相应的headerdata
  • 当使用pwn模块时,一定要修改相应的exp脚本。

后续计划

  • 兼容python2python3
  • config配置集成到web.py
  • 对每个后台进程进行监控
  • 生成图形化配置界面

更新说明:

v1.2

完善了env_test测试环境,用于测试脚本的运行

删除了原有的ip生成方式,改用了固定的ip列表,以应对复杂的ip环境

抛弃了urllib2,改用requests

submit新增了curl的提交方式

优化了submit、web、pwn的脚本

添加了单次测试的功能

v1.1

  • 修改了target ip的生成方式,来适应不同的网段;

ip_mode:"172.19.%d.30" start_ip:1 end_ip:8 skip_ip:3,5

==>['172.19.1.30', '172.19.2.30', '172.19.4.30', '172.19.6.30', '172.19.7.30', '172.19.8.30']

ip_mode:"172.19.30.%d" start_ip:1 end_ip:8 skip_ip:3,5

==>['172.19.30.1', '172.19.30.2', '172.19.30.4', '172.19.30.6', '172.19.30.7', '172.19.30.8']

  • 将web_flag.py的url调用进行了优化,不再采用url.txt

已完成计划

  • 将urllib2替换成requests.post,增加cookies配置