i春秋——“百度杯”CTF比賽 十月場——GetFlag(md5碰撞、文件包含、網站絕對路徑)


需要提交的captcha滿足等式,肯定就是MD5碰撞了

 

附上腳本

 1 import hashlib
 2 
 3 
 4 def func(md5_val):
 5     for x in range(1,100000000):
 6         md5_value=hashlib.md5(str(x)).hexdigest()
 7         if md5_value[:6]==md5_val:
 8             return str(x)
 9 
10 
11 print func(raw_input('md5_val:'))
12 
13 
14 raw_input('ok')

 

嘗試后發現登錄處存在sql注入,於是用 ' or 1# 登錄

 

看了下下載的幾個文件發現都沒有什么用,不過這個下載鏈接讓我想到了文件包含/Challenges/file/download.php?f=

嘗試讀取index.php,構造../inedx.php,但是發現只要文件名包含 任意字符+斜杠  都會提示 flag{wow!!!but not true},看來是屏蔽了目錄穿越,多次嘗試繞過無果,后來看了眼其他wp,這里並沒有屏蔽斜杠,所以還可以用絕對路徑,通過返回的header   " X-Powered-By: PHP/5.5.9-1ubuntu4.19 " 得知服務器系統是ubuntu,一般網站的路徑即為 /var/www/html 。

 

所以構造/Challenges/file/download.php?f=/var/www/html/Challenges/flag.php

 

看到這個 " echo file_get_contents("helloctf.php"); " 想直接包含改文件,但是發現提示error,所以繼續審代碼

第一眼覺得很麻煩,不過細看一下覺得這個實在沒難度,構造   flag=flag; ,注意有分號的,因為eval()執行的是一句完整的php代碼,當然要以分號結尾。然后eval() 那句執行的就是 $spaceone = flag;  ,然后沒反應? 查看源碼就可以看見了


免責聲明!

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



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