Fork me on GitHub

AWD-Tools

AWD 文章

TODO

AWD 工具

TODO

自己的AWD工具

AutoSubmitFlag

本着练习一下码代码的能力写了一份自动交flag的命令行脚本,主要实现

  • 从命令行读取主要参数,平台地址,队伍Token,目标IP池等
  • Web直接读取Requestes信息,完成批量工具
    • 批量后门种植工作
  • Pwn读取exp,完成批量攻击

每天写一点,断断续续写了一个星期。。写完回头看了下代码写得好丑感觉。。考完期中考试有空还是重构一下 = =

home

主要用到的库

Tips

写完看了下好像也没啥,然而写的时候各种googlge。。

  • 错误处理
try:
req = eval(exp)
except SyntaxError, e:
log.error('The input file maybe wrong' % e.__class__.__name__)
return 'Input ERROR', None
except Exception, e:
log.error('IP:%s Port:%s is outline:%s' % (ip,port,e.__class__.__name__))
return 'Connection ERROR', None
else:
html = req.content
flag = FLAG_PATTERN.findall(html)
if flag:
log.success('IP:%s Port:%s Flag: %s' % (ip, port, flag[0]))
return 'Success', flag[0]
else:
log.warn('IP:%s Port:%s is reinforced' % (ip, port))
return 'Miss',None
  • 命令行参数解析
@cli.command('auto')
@click.argument('platform', metavar='<Platform Url>')
@click.argument('ips',metavar='<Target IPs>')
@click.option('--method', '-m', default='post', type=click.Choice(['get', 'post']),
help='Method to submit flag')
@click.option('--token', help='Your Team Token')
@click.option('--delete', '-d', multiple=True, help='Delete the ip from ipList')
@click.option('--payload', '-p', nargs=3, multiple=True,
help="Web payload with 3 arguments:url,method,query")
@click.option('--web', type=click.File('rb'),help="Load web payload from file")
@click.option('--pwn',multiple=True,type=click.File('rb'))
def auto(platform, ips, method, token, delete, payload, web, pwn):
  • 动态加载
def frompwn(self,ip,file):
try:
flag = __import__(file).exploit(ip)