有段时间没有练习了,趁着周末做一下安恒月赛,这次的月赛题目大部分比较简单。
PWN和CRYPTO比较生疏就没做。
0x01 WEB——ezupload
题目是最常规的上传绕过,这里可以直接修改Content-Type和添加图片文件头来绕过检测。
另外,上传的文件后缀会被修改,如上传:eval.php
,最后会成为eval.gif,这里可以通过修改文件名为eval.php.php
来绕过,如图:
![snipaste20180624_102349.png](https://www.yourhome.ren/usr/uploads/2018/06/1831470482.png)
上传后直接命令执行拿到flag:
![snipaste20180624_102500.png](https://www.yourhome.ren/usr/uploads/2018/06/2243358288.png)
![snipaste20180624_102516.png](https://www.yourhome.ren/usr/uploads/2018/06/2556569043.png)
0x02 WEB——Mynote
这道题相对也比较简单一些
![snipaste20180624_102804.png](https://www.yourhome.ren/usr/uploads/2018/06/2954306310.png)
注册一个账号后,进入功能页面。可以上传文件、提交note等
![snipaste20180624_102910.png](https://www.yourhome.ren/usr/uploads/2018/06/1124379689.png)
上传可以修改type绕过,但是没有给出上传后的地址。
这里的笔记功能还存在XSS问题,但是不能打谁的Cookie,此题貌似XSS没什么用。
![snipaste20180624_103017.png](https://www.yourhome.ren/usr/uploads/2018/06/3841268534.png)
在查看图片页面,可以看到文件上传的图片,这里仔细观察,可以看到img标签是通过data:image
的base64数据格式展示图片的。
![snipaste20180624_103143.png](https://www.yourhome.ren/usr/uploads/2018/06/1703113627.png)
查看cookie,发现多了一个base64编码后的内容,解码得到一个PHP数组的序列化结果,而结果就是刚刚上传的文件名:
![snipaste20180624_103234.png](https://www.yourhome.ren/usr/uploads/2018/06/2221908237.png)
![snipaste20180624_103246.png](https://www.yourhome.ren/usr/uploads/2018/06/3827495153.png)
将eval.php
改成index.php
,base64编码后提交,得到报错,直接拿到上传路径:
![snipaste20180624_103345.png](https://www.yourhome.ren/usr/uploads/2018/06/1965122300.png)
![snipaste20180624_103418.png](https://www.yourhome.ren/usr/uploads/2018/06/3046100232.png)
接下来同样是直接访问WebShell,命令执行拿flag:
![snipaste20180624_103850.png](https://www.yourhome.ren/usr/uploads/2018/06/2110212846.png)
![snipaste20180624_103915.png](https://www.yourhome.ren/usr/uploads/2018/06/3190378701.png)
0x03 WEB——never give up
这题考察了MongoDB的点,如果没想到的话会没有思路。
题目是一个简单的页面,通过参数title传入任意值,会在当前页面上输出title的内容。
一开始觉得可疑的是源代码中有一大段压缩过的JS代码,但是发现是Jquery的JS代码,通过查看版本号,Diff对比了网上此版本的Jquery代码,发现并没有异常:
![snipaste20180624_104734.png](https://www.yourhome.ren/usr/uploads/2018/06/2711198881.png)
![snipaste20180624_104750.png](https://www.yourhome.ren/usr/uploads/2018/06/4006833165.png)
之后测试了很久,RPO、XSS等等,发现都没法利用,果断直接上AWVS开始漏扫。
意外收获:
![snipaste20180624_105110.png](https://www.yourhome.ren/usr/uploads/2018/06/1960404715.png)
最终利用MongoDB注入的格式,题目直接返回flag:
![snipaste20180624_105203.png](https://www.yourhome.ren/usr/uploads/2018/06/953707388.png)
0x04 RE——太复杂了
这是一道简单的APK安卓逆向,逆向结果中的数组直接通过ASCII编码转为字母即可,最后凯撒解密拿到flag
![snipaste20180624_105657.png](https://www.yourhome.ren/usr/uploads/2018/06/280806848.png)
![snipaste20180624_105721.png](https://www.yourhome.ren/usr/uploads/2018/06/3783824431.png)
![snipaste20180624_105733.png](https://www.yourhome.ren/usr/uploads/2018/06/2392028304.png)
0x05 RE——reverseme
这题更简单,直接字符串拼接,如图:
![snipaste20180624_105913.png](https://www.yourhome.ren/usr/uploads/2018/06/338578554.png)
0x06 MISC——only wireshark
也是一道简单的流量分析,直接过滤http协议,导出post内容的图片即可,查看图片末尾即是flag
![snipaste20180624_110105.png](https://www.yourhome.ren/usr/uploads/2018/06/710566144.png)
![snipaste20180624_110201.png](https://www.yourhome.ren/usr/uploads/2018/06/2042508361.png)
0x07 MISC——流量中的线索
这也是一道简单的题目,同样过滤http协议,看到返回的base64编码的内容:
![snipaste20180624_110322.png](https://www.yourhome.ren/usr/uploads/2018/06/4165833065.png)
对内容解密后的hex写入文件,拿到一个jpg图片,flag在图片中
![snipaste20180624_110451.png](https://www.yourhome.ren/usr/uploads/2018/06/396572577.png)
最后,虽然这次题目总体简单,但是还是学到一些东西。
并且提醒自己,PWN和CRYPTO要提高了。