PHP-代码审计-文件读取(下载)
生活随笔
收集整理的這篇文章主要介紹了
PHP-代码审计-文件读取(下载)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
概述
- 部分程序在下載或者讀取顯示文件的時候,讀取文件的參數filename直接在請求里面傳遞,后臺程序獲取到這個文件路徑后直接讀取返回
挖洞經驗
- 文件讀取的漏洞尋找起來比較容易一種方式是可以先黑盒測試功能點對應的文件,再去讀文件,這樣找起來比較快。
- 另一種方式就是搜索文件讀取的函數,看看有沒有直接或者間接控制的變量。文件讀取函數如下:
file_get_contents()
highlight_file()
fopen()
readfile()
fread()
fgetss()
fgets()
parse_ini_file()
show_source()
file() - 除了這些正常的讀取文件的函數之外,另外一些其他功能的函數也一樣可以讀取文件,
- 比如文件的函數之外,另外一些其他函數也一樣可以讀取文件,如文件包含函數 include PHP輸入輸出流 php://filter來讀取文件
phpcms任意文件讀取分析
代碼如下:
- 這里可以看到該函數直接從GET參數里面獲取要讀取的url,然后使用file_get_contens函數來讀取內容,
- 不過這里要說一點,如果直接提交?url=&q=1.php ,我們打印出來的url變量可以看到值為" &q=1.php",帶到函數里面則是file_get_contents(" &q=1.php"),這樣就讀不到當前文件
- 需要 ?url=&q=…/…/1.php 這樣多加兩個“ …/”,吧“&q=” 當成目錄來跳過,最終這個漏洞讀取數據庫配置文件的exp為:
- /index.php/phpcmsv9gbk//index.php?m=search&c=index&a=public_get_suggest_keyword&url=asdf&q=…/…/phpssp_server/caches/configs
總結
以上是生活随笔為你收集整理的PHP-代码审计-文件读取(下载)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP-代码审计-文件包含
- 下一篇: PHP-代码审计-文件上传