摘要:当后端程序通过不正确的正则表达式比如将之后到为止的字符内容,也就是,认为是访问请求的地址时对上述的内容进行解析的时候,很有可能会认为访问的为,而实际上这个所请求的内容都是上的内容。
gif分离,有两张有二维码,随便扫了一张就出了
压缩包,解压,再解压,有密码,爆破得到7788,查看文件头,png文件,改格式,一张二维码,扫描即可
拖进010
一串base,直接拖进cyberchef一把梭即可,base32解码得到flag
盲猜补定位符,但是图片很短,010里改高度补齐定位符然后扫码即可
图片叫做password,右键属性就看到密码,然后解开压缩包,1.txt是社会主义核心价值观编码,找个在线网站梭就行,得到一半的flag,png改高度就能看到另一半flag
题目名字就给出答案了,用SlientEye把图片解密一下就出flag
docx,全选把字变红色就能看到密码
还不知道有啥用,zsteg看看
一个链接,处理下打开是个解密图片隐藏数据的,结合密码,解开即可得到flag
爆破得到
misceasy.docx:$office$*2013*100000*256*16*bbf9fac88ca2ed85818e65d802ca47d8*72a41d3207adaea281cf197e7ea107f3*b5aeec3219919e56893255507644e75f067594ca13045de3e53ee45747965051
然后用hashcat爆破,懒得爆了。根本不需要
直接软件爆破得到密码51,改文字颜色即可,有点无语
F12看到传个cat就能拿flag
.user.ini
auto_append_file="xxx"
传xxx
这里大小写绕过过滤就行,过滤得不怎么严格
然后访问/upload/xxxx/,没什么问题用蚂蚁的一把剑连接即可拿到flag
代码混淆,网站一把梭
https://www.zhaoyuanma.com/phpjm.html
得到他的一句话慕码,应该是这样,有点忘了 连上去就拿到flag
看源码
import reimport osimport requestsimport tornado.webimport tornado.genimport tornado.ioloopimport tornado.autoreloadfrom tornado.concurrent import run_on_executorfrom concurrent.futures import ThreadPoolExecutordef request(url): # 对url做限制,必须要带域名,且去掉所有可以用的协议,包括dict、gohper、file协议 res = re_pattern(url) if res == False: return "请求地址未包含域名,危险地址" resq = requests.get(url, timeout=4) return resq.content.decode()def re_pattern(url): pattern = r"http.*://[a-zA-Z]*/.[a-zA-Z]*/.[a-zA-Z]*" result = re.match(pattern, url) if result is None: return False else: return Trueclass SsrfHandler(tornado.web.RequestHandler): max_thread_num = 200 executor = ThreadPoolExecutor(max_workers=max_thread_num) # 线程内处理 @run_on_executor def get(self): try: url = self.get_query_argument("url") response = request(url) self.write(response) except Exception as e: print(e)class FlagHandler(tornado.web.RequestHandler): def get(self): print(self.request.remote_ip) if self.request.remote_ip != "127.0.0.1": if self.request.remote_ip == "::1": self.write("No ip address") else: self.write("No have permissions") else: self.write(os.environ.get("FLAG"))class IndexHandler(tornado.web.RequestHandler): def get(self): self.finish("welcome to GUET CTF