[原題復現][極客大挑戰 2019]BuyFlag


簡介

 原題復現:[極客大挑戰 2019]BuyFlag  

 考察知識點:php函數特性(is_numeric()、strcmp函數())

 線上平台:https://buuoj.cn(北京聯合大學公開的CTF平台 特別感謝!) 榆林學院內可使用信安協會內部的CTF訓練平台找到此題

復現

基礎知識

is_numeric()函數 :https://www.cnblogs.com/xhds/p/12312223.html

strcmp()函數:https://www.cnblogs.com/xhds/p/12312055.html

打開頁面發現payflag頁面 在這個頁面有這些信息

If you want to buy the FLAG:
You must be a student from CUIT!!!
You must be answer the correct password!!!

Only Cuit's students can buy the FLAG

FLAG NEED YOUR 100000000 MONEY

在源碼中發現:

<!--
    ~~~post money and password~~~
if (isset($_POST['password'])) {
    $password = $_POST['password'];
    if (is_numeric($password)) {
        echo "password can't be number</br>";
    }elseif ($password == 404) {
        echo "Password Right!</br>";
    }
}
-->

 根據這些信息分析是要經過post傳輸密碼要等於404  才等於說有權限購買 金錢要等於100000000  首先有個問題404是數值is_numeric函數會檢測出來所以我們得繞過它 還有主義觀察我們抓取的包里面cookie的值有個user=0 CTF直覺這肯定要改成1的 因為正常情況下這里是cookie的值 所以我們用bp測試

得到信息  nember lenth is too long 意識是長度有問題太長 所以這里我們借助strcmp的函數特性繞過它

strcmp函數特性 money后面加[]繞過   即可得到flag

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM