CTF_WP_UPLOAD2

This commit is contained in:
xiaobai 2025-03-22 21:10:26 +08:00
parent fca6e65eb7
commit e59ed31afe

View File

@ -34,7 +34,7 @@ cv
最后一个的hex就直接是了
![wireshark](.\Img\wireshark.png)
![wireshark](./Img/wireshark.png)
5.我图图呢
@ -42,17 +42,17 @@ cv
另一端是编码最后地方
![tutu](.\Img\tutu.png)
![tutu](./Img/tutu.png)
![tutu2](.\Img\tutu2.png)
![tutu3](.\Img\tutu3.png)
![tutu3](./Img/tutu3.png)
6.easyzip
![zip](.\Img\zip.png)
![zip](./Img/zip.png)
![zip2](.\Img\zip2.png)
![zip2](./Img/zip2.png)
6.Are you a JPG master?
@ -64,13 +64,13 @@ cv
然后寻找工具
<img src=".\Img\JPG.png" alt="JPG" style="zoom:50%;" />
<img src="./Img/JPG.png" alt="JPG" style="zoom:50%;" />
找到了
剥离水印。获得第一次zip密码
![JPG2](.\Img\JPG2.png)
![JPG2](./Img/JPG2.png)
然后level2
@ -100,7 +100,7 @@ binwalk -e。。。。。。。。。。
于是使用Stegsolve查看图片细节
发现大量奇怪色块![JPG3](.\Img\JPG3.png)判断是`steghide`
发现大量奇怪色块![JPG3](./Img/JPG3.png)判断是`steghide`
着手编写脚本
@ -141,15 +141,15 @@ if __name__ == '__main__':
成功获得flag
![JPG4](.\Img\JPG4.png)
![JPG4](./Img/JPG4.png)
7.mermory
kali里下好vol然后内存分析在浏览器记录里发现了secret.png![1](C:\Users\xiaobai\Desktop\CTFWP\1.png![mermory](.\Img\mermory.png)和part3
kali里下好vol然后内存分析在浏览器记录里发现了secret.png![mermory](./Img/mermory.png)和part3
然后把secret.png导出获得头
在剪切板记录里获得part2![mermory2](.\Img\mermory2.png)
在剪切板记录里获得part2![mermory2](./Img/mermory2.png)
最后结合头部中部尾部得到flag
@ -159,7 +159,7 @@ SilentEye隐写把音频导入然后解密就行
根据hint提示这个密码和五月天有关u1s1它这个误导非常大因为hint说key是歌手名首字母大写可问题是解出来的key是Mayday二Mayday是五月天这个乐队的名字五月天是乐队而不是歌手真的奇了怪了
![5525](.\Img\5525.png)
![5525](./Img/5525.png)
@ -167,17 +167,17 @@ SilentEye隐写把音频导入然后解密就行
1.real1ty的小秘密
![real1ty-small](.\Img\real1ty-small.png)
![real1ty-small](./Img/real1ty-small.png)
凯撒密码,试几下就出了
![real1ty-small2](Img\real1ty-small2.png)
![real1ty-small2](./Img/real1ty-small2.png)
2.我解md5真的假的
一个一个解就行直接用给的那个网站就行
![md5](Img\md5.png)
![md5](./Img/md5.png)
注意第4个给的那个网站我没查到所有只能硬算
@ -187,7 +187,7 @@ SilentEye隐写把音频导入然后解密就行
![md52](Img\md52.png)
![md52](./Img/md52.png)
@ -199,7 +199,7 @@ SilentEye隐写把音频导入然后解密就行
![Morse_Code](Img\Morse_Code.png)
![Morse_Code](./Img/Morse_Code.png)
@ -213,7 +213,7 @@ SilentEye隐写把音频导入然后解密就行
那我多跑几遍直到redrock出现就行了
![easy crypto]( Img\easy crypto.png)
![easy crypto](./Img/easy crypto.png)
5.What is RSA
@ -221,7 +221,7 @@ SilentEye隐写把音频导入然后解密就行
把参数填了就出了
![What is RSA]( Img\What is RSA.png)
![What is RSA](./Img/What is RSA.png)
6.e这么小吗
@ -237,9 +237,9 @@ SilentEye隐写把音频导入然后解密就行
根据这个思路
因为这道题给我发的数字都是10进制所有我需要先改一下代码再获得10进制解密数字后转16进制然后转字符串![e-small]( Img\e-small.png)
因为这道题给我发的数字都是10进制所有我需要先改一下代码再获得10进制解密数字后转16进制然后转字符串![e-small](./Img/e-small.png)
结果图:![e-small2](Img\e-small2.png)![e-small3](Img\e-small3.png)
结果图:![e-small2](./Img/e-small2.png)![e-small3](./Img/e-small3.png)
7.rel1ty的大秘密
@ -247,13 +247,13 @@ SilentEye隐写把音频导入然后解密就行
但是总的来说还是很简单
写3个程序分别用于解base16 32 64编码![rel1ty-big]( Img\rel1ty-big.png)
写3个程序分别用于解base16 32 64编码![rel1ty-big](./Img/rel1ty-big.png)
然后来回套,看那个可以继续套下去
直到出现一个很像flag的东西
![rel1ty-big]( Img\rel1ty-big2.png)
![rel1ty-big](./Img/rel1ty-big2.png)
然后猜测royk与rock处是交换点
@ -271,7 +271,7 @@ SilentEye隐写把音频导入然后解密就行
然后提交
![rel1ty-big3]( Img\rel1ty-big3.png)
![rel1ty-big3](./Img/rel1ty-big3.png)
8.real1ty的中秘密
@ -323,7 +323,7 @@ pwn
ida打开 输入-1 开启后门
![login]( Img\login.png)
![login](./Img/login.png)
故 -1
@ -331,7 +331,7 @@ flag get
2. real login
3. 依旧签到
4. ![real login]( Img\real login.png)
4. ![real login](./Img/real login.png)
nc 连上
@ -345,9 +345,9 @@ nc 连上
这道题应该是个内存泄漏题
![爱捉弄人的beatcat]( Img\playwithbetacat.png)
![爱捉弄人的beatcat](./Img/playwithbetacat.png)
![爱捉弄人的beatcat2]( Img\playwithbetacat2.png)
![爱捉弄人的beatcat2](./Img/playwithbetacat2.png)
要buf=v2那就看怎么填充得到v2了呗然后就看buf到r的空间大小0x191个然后就这么填充A占位
@ -361,7 +361,7 @@ nc 连上
这个就是做脚本自动计算
![ccat]( Img\ccat.png)
![ccat](./Img/ccat.png)
然后就行了
@ -369,13 +369,13 @@ nc 连上
newstarctf 第一周的一个pwn题一样的过程
![betacatyuma]( Img\betacatyuma.png)
![betacatyuma](./Img/betacatyuma.png)
使nbytes_4的数据溢出到nbytes
![betacatyuma]( Img\betacatyuma2.png)
![betacatyuma](./Img/betacatyuma2.png)
把得到的payload输进窗口就完成了
@ -391,19 +391,19 @@ newstarctf 第一周的一个pwn题一样的过程
最后知道了方法
先是填充![backdoorbetacat]( Img\backdoorbetacat.png)
先是填充![backdoorbetacat](./Img/backdoorbetacat.png)
使buf刚刚溢出
![backdoorbetacat]( Img\backdoorbetacat2.png)
![backdoorbetacat](./Img/backdoorbetacat2.png)
0x50+0x08生成个A
然后是加上backdoor的地址![backdoorbetacat]( Img\backdoorbetacat3.png)
然后是加上backdoor的地址![backdoorbetacat](./Img/backdoorbetacat3.png)
启动脚本
![backdoorbetacat4]( Img\backdoorbetacat4.png)
![backdoorbetacat4](./Img/backdoorbetacat4.png)
成功获得flag
@ -413,11 +413,11 @@ web
score控制台改10000就行
![snake]( Img\snake.png)
![snake](./Img/snake.png)
2.这是真签到
进去翻翻源码![realqd]( Img\realqd.png)
进去翻翻源码![realqd](./Img/realqd.png)
得到flag
@ -427,13 +427,13 @@ newstarctf中的智械危机类似
看robots.txt这是一个协议关于爬虫相关的
![robot]( Img\robot.png)
![robot](./Img/robot.png)
然后先看hint知道/flag下的字符串是flag的每个字符填充7个随机字符得到
所以写个脚本就得到flag了
![robot2]( Img\robot2.png)
![robot2](./Img/robot2.png)
4.留言板
@ -449,9 +449,9 @@ python版sql注入
所以写的时候现在前面加一个‘+f就可在{}里执行任意命令,注意到它有限长,而且和‘’的数量.的数量有关所以废了下功夫构造出一个函数得到flag
![liuyan]( Img\liuyan.png)
![liuyan](./Img/liuyan.png)
![liuyan2]( Img\liuyan2.png)
![liuyan2](./Img/liuyan2.png)
5.肚子饿了
@ -469,7 +469,7 @@ python版sql注入
但是问题最大的是如何找到这个判断通过长时间的分析发现and和union不能用位置还是在尴尬的order by 后面 并且order by 后面已经有了一个值在这里命名为x。所以唯一的出路是想办法让那个by后面的值入手发现if(e1,e2,e3)这个sql语句中e1是判别式如果正确那么就会返回e2如果错误那么就会返回e3。这就是一个很好的触发点。此时如果找到一个运算符让x与这个if出来的值进行计算可以改变表的顺序就大功告成。
经过尝试![ele]( Img\ele.png)。![ele2]( Img\ele2.png)最后发现如果在?type=处填写>>IF((判别式),2,1)就可以做到上条件。然后就开始着手写脚本
经过尝试![ele](./Img/ele.png)。![ele2](./Img/ele2.png)最后发现如果在?type=处填写>>IF((判别式),2,1)就可以做到上条件。然后就开始着手写脚本
```
import requests
@ -513,21 +513,21 @@ print("Result:", result)
然后就是用二分法查值最后得出flag
![ele4]( Img\ele4.png)
![ele4](./Img/ele4.png)
![ele5]( Img\ele5.png)
![ele5](./Img/ele5.png)
![ele6](Img\ele6.png)
![ele6](./Img/ele6.png)
6.简简单单upload
进去首先审计代码![upload]( Img\upload.png)
进去首先审计代码![upload](./Img/upload.png)
发先了它得上传逻辑就是说它会将源文件改名并上传道upload得目录下
改名逻辑是时间戳+_+原名
所以通过上传文件时的回显获得服务器时间![upload]( Img\upload2.png)
所以通过上传文件时的回显获得服务器时间![upload](./Img/upload2.png)
然后写一个脚本换算时间戳
@ -548,13 +548,13 @@ print("时间戳:", timestamp)
于是上传一个一句话用蚁剑连接它
![upload]( Img\upload3.png)
![upload](./Img/upload3.png)
连接后查看根目录
发现flag就在哪儿
![upload]( Img\upload4.png)
![upload](./Img/upload4.png)
但是打开是空白。发现是权限问题
@ -562,7 +562,7 @@ print("时间戳:", timestamp)
结果shell都无法使用
![upload]( Img\upload5.png)
![upload](./Img/upload5.png)
查阅资料是php设置了disable_function
@ -572,7 +572,7 @@ print("时间戳:", timestamp)
发现可以用蚁剑插件绕过
![upload]( Img\upload6.png)
![upload](./Img/upload6.png)
成功绕过
@ -601,11 +601,11 @@ find / -user root -perm -4000 -print 2>/dev/null
一番尝试下
![upload]( Img\upload7.png)
![upload](./Img/upload7.png)
成功获得flag
然后得到flag![upload]( Img\upload8.png)
然后得到flag![upload](./Img/upload8.png)
7.slowjson
@ -625,7 +625,7 @@ spring会反序列化它们实例化它们从而让这些类运行起
所以我只需要略作修改指把地址改一下就可以得到flag的anscii码
![slowjson]( Img\slowjson.png)
![slowjson](./Img/slowjson.png)
Reverse
@ -633,7 +633,7 @@ Reverse
走迷宫首先ida打开看程序长什么样
![baby_Reverse]( Img\baby_Reverse.png)
![baby_Reverse](./Img/baby_Reverse.png)
好的键盘输入每一步的方位anscii码分别对应的是up down right left的首字母
@ -641,17 +641,17 @@ Reverse
然后呢不难发现
![baby_Reverse]( Img\baby_Reverse2.png)
![baby_Reverse](./Img/baby_Reverse2.png)
就是存储地图数据的地方
那么直接看迷宫啥样
![baby_Reverse]( Img\baby_Reverse3.png)
![baby_Reverse](./Img/baby_Reverse3.png)
整理一下
![baby_Reverse]( Img\baby_Reverse4.png)
![baby_Reverse](./Img/baby_Reverse4.png)
发现有部分道路堵塞,没关系,反正都在很后面了影响不大
@ -659,11 +659,11 @@ Reverse
然后就是用bfs算法算出路径
![baby_Reverse]( Img\baby_Reverse5.png)
![baby_Reverse](./Img/baby_Reverse5.png)
算出后取前面30个
![baby_Reverse]( Img\baby_Reverse6.png)
![baby_Reverse](./Img/baby_Reverse6.png)
A为左右B为上下的位移
@ -675,7 +675,7 @@ flag就出了
确实很easyflag直接明文展示的
![easy]( Img\easy.png)
![easy](./Img/easy.png)
拿就拿下呗
@ -697,6 +697,6 @@ ida打开
ce启动启动变速齿轮然后速度就正常了
过关呗然后flag拿下![mini_game]( Img\mini_game.png)
过关呗然后flag拿下![mini_game](./Img/mini_game.png)
![mini_game](G:\wp\CTF\RedRockCTF\Img\mini_game2.png)
![mini_game](./Img/mini_game2.png)