2021-11-24 學(xué)習(xí)日記

1.Bugku

decrypt

<?php
function encrypt($data,$key)
{
    $key = md5('ISCC');
    $x = 0;
    $len = strlen($data);
    $klen = strlen($key);
    for ($i=0; $i < $len; $i++) { 
        if ($x == $klen)
        {
            $x = 0;
        }
        $char .= $key[$x];//.= 在php中是字符串連接的意思
        $x+=1;
    }
    for ($i=0; $i < $len; $i++) {
        $str .= chr((ord($data[$i]) + ord($char[$i])) % 128);
    }
    return base64_encode($str);
}
?>

寫(xiě)個(gè)py腳本解密flag即可。

#python3
from base64 import *
from hashlib import *

str_b64encode='fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA='
str=str(b64decode(str_b64encode),'utf-8')#len(str)=38,即len=38
key=md5('ISCC'.encode('utf-8')).hexdigest()
char=''
x=0
flag=''
for i in range(0,38):
    if x==len(key):
        x=0
    char+=key[x]
    x+=1
for i in range(0,38):
    if ord(str[i])<ord(char[i]):
        flag=flag+chr((ord(str[i])+128)-ord(char[i]))
        continue
    flag = flag + chr(ord(str[i]) - ord(char[i]))
print(flag)

每次看自己寫(xiě)的py腳本總覺(jué)得很丑陋,遠(yuǎn)不如大佬們寫(xiě)得美觀、高效。

sql注入

方法提示的很明確,基于布爾的SQL盲注。
先嘗試一下常用的用戶名和口令,得到一個(gè)正確的用戶名為admin。


1-1

先嘗試了一下,傳入"a'or(length(database())<8)"時(shí)提示用戶名不存在,傳入"a'or(length(database())<9)"時(shí)提示密碼錯(cuò)誤,說(shuō)明當(dāng)前數(shù)據(jù)庫(kù)名長(zhǎng)度為8。
這里要注意,本題過(guò)濾了information/where/is/=/like等關(guān)鍵詞,所以沒(méi)辦法(至少我想不到辦法)去爆表名,列名??戳藈p好像是猜出來(lái)的?
使用py腳本,繼續(xù)使用bool盲注的方式,爆出password,然后解密,登錄,即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容