国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

CTF-[Web] MD5解題思路

這篇具有很好參考價(jià)值的文章主要介紹了CTF-[Web] MD5解題思路。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

寫在前面:最近練習(xí)了一些CTF中關(guān)于md5繞過的題目,總結(jié)了幾種思路,本質(zhì)沒有太大變化,就是各種組合繞過,也是比較考察基礎(chǔ)的,前段時(shí)間太擺爛了,好久沒有更新了,革命尚未成功,同志仍需努力?。?!

關(guān)于md5

? md5是一種信息摘要算法(目標(biāo)是用于證明原文的完整性),其本質(zhì)也是一種哈希函數(shù),一種被廣泛使用的密碼散列函數(shù),任意長度的數(shù)據(jù)算出的md5值的長度都是固定的,md5碼具有高度的散列性,沒有規(guī)律可循,哪怕轅信息只有一點(diǎn)變化,那么md5碼也會發(fā)生巨大的變化,常用于驗(yàn)證文件的完整性,數(shù)據(jù)庫存儲密碼,數(shù)字簽名等。

? md5具有不可逆性,但是通過MD5碰撞,還是有一定可能逆向出來的,(推薦一個(gè)在線md5破解網(wǎng)站:md5在線破解網(wǎng)站)

PHP 類型比較

  • 松散比較(運(yùn)算符):使用兩個(gè)等號?==?比較,只比較值,不比較類型。
  • 嚴(yán)格比較(全等運(yùn)算符):用三個(gè)等號?===?比較,除了比較值,也比較類型。

詳細(xì)了解可以參考菜鳥教程,很詳細(xì)了。

PHP 0e漏洞

? PHP在處理哈希字符串時(shí),會利用”!=”或”==”來對哈希值進(jìn)行比較,它把每一個(gè)以”0E”開頭的哈希值都解釋為0(當(dāng)成科學(xué)計(jì)數(shù)法進(jìn)行處理),所以如果兩個(gè)不同的密碼經(jīng)過哈希以后,其哈希值都是以”0E”開頭的,那么PHP將會認(rèn)為他們相同,都是0。

? PHP在攻擊者可以利用這一漏洞,通過輸入一個(gè)經(jīng)過哈希后以”0E”開頭的字符串,即會被PHP解釋為0,如果數(shù)據(jù)庫中存在這種哈希值以”0E”開頭的密碼的話,他就可以以這個(gè)用戶的身份登錄進(jìn)去,盡管并沒有真正的密碼。

PHP md5()函數(shù)

語法:md5(string,raw)

PHP md5()函數(shù)
參數(shù) 描述
string 必需。規(guī)定要計(jì)算的字符串。
raw 可選。規(guī)定十六進(jìn)制或二進(jìn)制輸出格式:

TRUE - 原始 16 字符二進(jìn)制格式

FALSE - 默認(rèn) 32 字符十六進(jìn)制數(shù)

md5解密 ctf,PHP,BUUCTF,CTF,哈希算法,算法,網(wǎng)絡(luò)安全,web安全

具體使用方法,可以參考菜鳥教程

松散比較類型

?題目一

  • 題目如下:
<?php
header("Content-Type:text/html;charset=utf-8");
show_source(__FILE__);
include('flag.php');
$md5 = $_GET['md5'];
if($md5 == md5($md5)){
    echo 'GET_FLAG'.$flag;
}else{
    echo 'md5校驗(yàn)失敗...';
}
?> md5校驗(yàn)失敗...
  • 題目分析:

題目中要求一個(gè)字符串與md5加密后的值相等,通過上面PHP 0e漏洞的原理,也就將此題轉(zhuǎn)化成 ==>尋找一個(gè)字符串(0e開頭)加密后(還是0e開頭),弱比較相等

payload:?md5=0e215962017

  • 此題可解:

md5解密 ctf,PHP,BUUCTF,CTF,哈希算法,算法,網(wǎng)絡(luò)安全,web安全

?md5解密 ctf,PHP,BUUCTF,CTF,哈希算法,算法,網(wǎng)絡(luò)安全,web安全

題目二

  • 題目如下:
<?php
header("Content-Type:text/html;charset=utf-8");
show_source(__FILE__);
include('flag.php');
$username = $_GET['username'];
$password = $_GET['password'];
if($username != $password){
    if(md5($username) == md5($password)){
        echo 'GET_FLAG:'.$flag;
    }else{
        echo 'md5校驗(yàn)出錯...';
    }
}else{
    echo '用戶名密碼不能相等!';
}
?> 用戶名密碼不能相等
  • 題目分析:

題目中,要求兩個(gè)字符串值不能相等,但是兩個(gè)字符串經(jīng)過md5加密后的值需要相等,通過上面PHP 0e漏洞的原理,也就將此題轉(zhuǎn)化成 ==> 尋找兩個(gè)值加密后以0e開頭,且0e后面是純數(shù)字的字符串即可,可以使用Python寫個(gè)程序或者直接在網(wǎng)上搜。

240610708 
0e462097431906509019562988736854
 
314282422 
0e990995504821699494520356953734
 
571579406 
0e972379832854295224118025748221

QLTHNDT 
0e405967825401955372549139051580
 
QNKCDZO 
0e830400451993494058024219903391
 
EEIZDOI 
0e782601363539291779881938479162
 
TUFEPMC 
0e839407194569345277863905212547
 
UTIPEZQ 
0e382098788231234954670291303879
  • 此題可解:

md5解密 ctf,PHP,BUUCTF,CTF,哈希算法,算法,網(wǎng)絡(luò)安全,web安全

嚴(yán)格比較類型

題目一

  • 題目如下:
<?php
header("Content-Type:text/html;charset=utf-8");
show_source(__FILE__);
include('flag.php');
$username = $_GET['username'];
$password = $_GET['password'];
if($username != $password){
    if(md5($username) === md5($password)){
        echo 'GET_FLAG:'.$flag;
    }else{
        echo 'md5校驗(yàn)出錯...';
    }
}else{
    echo '用戶名密碼不能相等!';
}
?> 用戶名密碼不能相等!
  • 題目分析:

全等運(yùn)算符“===”,既比較值又比較類型,題目中“!=”意思為“不等于”,具體可查看菜鳥教程關(guān)于“!=”說明,值不相等時(shí)返回“ture”,也就是說兩個(gè)參數(shù)值要不相等,兩個(gè)參數(shù)在md5加密后全相等,也就是說兩個(gè)參數(shù)在md5加密后不僅值相等類型也要一致,此時(shí)就無法利用PHP 0e漏洞了,需要別的方法繞過。

可以利用md5在加密字符串時(shí)會warining,輸出結(jié)果為NULL,傳入兩個(gè)數(shù)組,這樣就能使兩個(gè)參數(shù)在md5加密后的類型是一致的。

payload:?username[]=1&password[]=2

  • 此題可解:

md5解密 ctf,PHP,BUUCTF,CTF,哈希算法,算法,網(wǎng)絡(luò)安全,web安全

?catf1ag{nlLU5FRGzI98ZuDyCYwq4KG4iZqIVEmp}

SQL注入+md5

(此題考察了SQL注入+md5各種繞過)

  • 題目如下:md5解密 ctf,PHP,BUUCTF,CTF,哈希算法,算法,網(wǎng)絡(luò)安全,web安全
  • 題目分析:

隨便輸入內(nèi)容。點(diǎn)擊提交沒有任何回顯,想到查看網(wǎng)頁源代碼,是否會有線索解題,在源代碼中看到“header”,考慮可以嘗試抓包查看HTTP頭,這里推薦一個(gè)好用的在線工具(在線查看HTTP/HTTPS響應(yīng)消息頭)。

md5解密 ctf,PHP,BUUCTF,CTF,哈希算法,算法,網(wǎng)絡(luò)安全,web安全

通過抓包(如下圖),發(fā)現(xiàn)“Hint”處存在一個(gè)SQL語句“select * from 'admin' where password=md5($pass,true)”,這里通過上面對PHP md5()函數(shù)的解釋,md5($pass,true)為true時(shí),返回的是原始 16 字符二進(jìn)制格式,這時(shí)可以通過輸入ffifdyop進(jìn)行繞過。md5解密 ctf,PHP,BUUCTF,CTF,哈希算法,算法,網(wǎng)絡(luò)安全,web安全

ffifdyop繞過原理:

ffifdyop經(jīng)過md5加密后是:276f722736c95d99e921722cf9ed621c

在轉(zhuǎn)換字符串是:'or'6<亂碼>? 即 ?'or'66?]??!r,??b

利用方法:

select * from admin where password=''or'6<亂碼>'

就相當(dāng)于構(gòu)成永真式,即萬能密碼,實(shí)現(xiàn)SQL注入

select * from admin where password=''or 1

?輸入提交后,返回了新的頁面(如下圖)。

md5解密 ctf,PHP,BUUCTF,CTF,哈希算法,算法,網(wǎng)絡(luò)安全,web安全

查看網(wǎng)頁源代碼。

<!--
$a = $GET['a'];
$b = $_GET['b'];

if($a != $b && md5($a) == md5($b)){
-->

這里通過代碼審計(jì):

傳入?yún)?shù)a和b不能相等,兩個(gè)參數(shù)經(jīng)過md5加密后值相等??梢詤⒖忌厦娴乃缮⒈容^類型進(jìn)行繞過。提交參數(shù)后,頁面刷新(如下圖)。

md5解密 ctf,PHP,BUUCTF,CTF,哈希算法,算法,網(wǎng)絡(luò)安全,web安全好家伙,又要繞過,需要傳入?yún)?shù)param1和param2,需要滿足兩個(gè)參數(shù)不相等,md5加密后值和類型都相等,可以參考上面的嚴(yán)格比較類型進(jìn)行繞過(數(shù)組)。需要注意的是這里需要使用POST傳參,這里推薦工具:HackBar。

  • 題目得解:

md5解密 ctf,PHP,BUUCTF,CTF,哈希算法,算法,網(wǎng)絡(luò)安全,web安全

?flag{2223418e-1d21-4436-95cb-4050c0ffc7a4}

題目練習(xí)平臺

Catf1agCTF - 綜合訓(xùn)練平臺(前面幾道題目)

BUUCTF在線評測http://www.catf1ag.cn/mainBUUCTF在線評測(最后一題[BJDCTF2020]Easy MD51)文章來源地址http://www.zghlxwxcb.cn/news/detail-649735.html

到了這里,關(guān)于CTF-[Web] MD5解題思路的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • RSA、MD5加密解密算法全套解析安裝教程

    RSA、MD5加密解密算法全套解析安裝教程

    第一部分介紹加密解密算法, 第二部分介紹我小組成功應(yīng)用的RSA、MD5兩種加密解密算法,以及心得體會。 1、加密解密算法介紹 應(yīng)用的開發(fā)中安全很重要,所以信息加密技術(shù)顯得尤為重要。我們需要對應(yīng)用中的多項(xiàng)數(shù)據(jù)進(jìn)行加密處理,從而來保證應(yīng)用上線后的安全性,給用戶

    2024年02月09日
    瀏覽(26)
  • 常見加密解密(DES、RSA)以及摘要算法MD5的介紹

    常見加密解密(DES、RSA)以及摘要算法MD5的介紹

    1.1-理解MD5 MD5公開的算法,任何語言實(shí)現(xiàn)后其實(shí)都是一樣的、通用的 不可逆加密:原文——加密——密文,密文無法解密出原文 1.2-MD5封裝 1.3-MD5總結(jié) 相同原文加密的結(jié)果是一樣的 不同長度的內(nèi)容加密后都是32位,可以自行改變長度 原文件改動差別很小,結(jié)果差別很大 不管文

    2024年02月14日
    瀏覽(23)
  • Java使用MD5加鹽對密碼進(jìn)行加密處理,附注冊和登錄加密解密處理

    Java使用MD5加鹽對密碼進(jìn)行加密處理,附注冊和登錄加密解密處理

    在開發(fā)的時(shí)候,有一些敏感信息是不能直接通過明白直接保存到數(shù)據(jù)庫的。最經(jīng)典的就是密碼了。如果直接把密碼以明文的形式入庫,不僅會泄露用戶的隱私,對系統(tǒng)也是極其的不厲,這樣做是非常危險(xiǎn)的。 那么我們就需要對這些銘文進(jìn)行加密。 現(xiàn)在市場是加密的方式已經(jīng)

    2024年02月02日
    瀏覽(23)
  • 【MD5】什么是MD5?md5的簡要描述

    MD5:英文全稱是 Message-Digest Algorithm 5。 中文名為 消息摘要算法第五版。它是消息摘要算法,屬于 Hash 算法的一種。 正常情況下,它的結(jié)果是一個(gè) 長度為 32位 的 16進(jìn)制 的 字符串 。 也有一些地方會用到 16 位的 MD5的結(jié)果,它實(shí)際上是從 32位 字符串中取中間的第9位到第24位的

    2024年02月08日
    瀏覽(20)
  • C#集成數(shù)據(jù)加密算法,包含DES、RSA、Base64、SHA、MD5算法,輕松實(shí)現(xiàn)數(shù)據(jù)加密解密需求

    C#集成數(shù)據(jù)加密算法,包含DES、RSA、Base64、SHA、MD5算法,輕松實(shí)現(xiàn)數(shù)據(jù)加密解密需求

    在需要使用配置文件的工控軟件中,往往需要在配置文件和數(shù)據(jù)庫中對一些數(shù)據(jù)加密,即對一串?dāng)?shù)據(jù)進(jìn)行加密算法后輸出復(fù)雜符號和字符的形式,讓非相關(guān)人員無法識別原有數(shù)據(jù),從而對數(shù)據(jù)或數(shù)據(jù)庫進(jìn)行相應(yīng)的保護(hù),這往往也是公司安全部門的基本要求。 網(wǎng)上寫加密算法的

    2024年02月03日
    瀏覽(95)
  • linux:md5命令以及md5的使用場景

    MD5廣泛用于數(shù)據(jù)完整性校驗(yàn)和密碼存儲,它是一種不可逆的加密算法,目前無法解密。它會逐位對文件的內(nèi)容進(jìn)行校驗(yàn)。是文件的內(nèi)容,與文件名無關(guān),也就是文件內(nèi)容相同,其md5值相同。 在數(shù)據(jù)完整性校驗(yàn)中,MD5可用于驗(yàn)證數(shù)據(jù)的完整性。例如,在下載文件后,可以對下載

    2024年02月06日
    瀏覽(20)
  • macOS - md5 | md5sum

    大文件傳輸是否完整,你可以使用 md5 進(jìn)行校驗(yàn) linux 上使用 md5sum 命令,在macOS 上 md5 命令是和 md5sum 等效的 參考:https://blog.csdn.net/cnds123321/article/details/124946370 Linux macOS Linux - md5sum Usage: md5sum [OPTION]… [FILE]… Print or check MD5 (128-bit) checksums. With no FILE, or when FILE is -, read standard

    2024年01月18日
    瀏覽(21)
  • win中查看MD5、Linux中查看MD5

    win中查看MD5、Linux中查看MD5

    Git Bash Here

    2024年02月04日
    瀏覽(24)
  • uniapp使用md5加密 js使用md5加密

    uniapp使用md5加密 js使用md5加密

    文章的初衷 最近項(xiàng)目中使用了md5加密,為了方便還不明白怎么使用的朋友參考查閱,當(dāng)然也為了方便博主再次使用所寫 md5加密說明 可在不同平臺使用 因?yàn)槭褂梅椒ㄊ莏s方法去調(diào)用的所以不局限于某個(gè)平臺 我這里使用的方式是登錄的時(shí)候進(jìn)行加密,具體其他的使用方式,朋友們自

    2024年02月07日
    瀏覽(81)
  • 使用md5collgen進(jìn)行MD5碰撞實(shí)驗(yàn)

    使用md5collgen進(jìn)行MD5碰撞實(shí)驗(yàn)

    題目1:可在ubuntu主機(jī)上預(yù)先安裝md5collgen,題目為“生成兩個(gè)MD5哈希值一致但是文件內(nèi)容不同的文件”。 所謂“文件內(nèi)容不同但卻有相同的哈希值”就是 碰撞。 在這個(gè)題目中,我們將生成兩個(gè)具有相同MD5哈希值的不同文件。這兩個(gè)文件的開始部分需要相同,即它們共享相同

    2024年01月24日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包