diff --git a/CTF/RedRockCTF/RedRockCTF.md b/CTF/RedRockCTF/RedRockCTF.md index f31a6bb..393e3f0 100644 --- a/CTF/RedRockCTF/RedRockCTF.md +++ b/CTF/RedRockCTF/RedRockCTF.md @@ -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 然后寻找工具 -JPG +JPG 找到了 剥离水印。获得第一次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就出了 确实很easy,flag直接明文展示的 -![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) \ No newline at end of file +![mini_game](./Img/mini_game2.png) \ No newline at end of file