知識點:PHP弱類型
.git文件泄露
玩攻防世界 遇到一個題lottery 進去看看 分析玩法
我們發現 進入登陸用戶都是初始值 金錢是20 彩票號碼必須輸入7位 然后看你輸入的彩票號碼有多少個重復。
然后我們還發現 flag是可以購買的只要你金錢夠。。。 這時間我們猜想可能他讓我彩票贏錢來獲取flag 一時思路是 暴力…
習慣拿到網站 先上AWVS 掃描 我們掃描出了.git
我們可以利用這個.git漏洞
首先我們來了解下.Git這個東西
Git信息泄露的危害很大,滲透測試人員、攻擊者,可直接從源碼獲取敏感配置信息(如:郵箱,數據庫),也可以進一步審計代碼,挖掘文件上傳、SQL注射等安全漏洞
需要的工具就是GitHack
獲取工具代碼:https://github.com/lijiejie/GitHack
GitHack是一個.git泄露利用腳本,通過泄露的.git文件夾下的文件,重建還原工程源代碼。
滲透測試人員、攻擊者,可以進一步審計代碼,挖掘:文件上傳,SQL注射等web安全漏洞。
## 工作原理 ##
* 解析.git/index文件,找到工程中所有的: ( 文件名,文件sha1 )
* 去.git/objects/ 文件夾下下載對應的文件
* zlib解壓文件,按原始的目錄結構寫入源代碼
## 用法示例 ##
GitHack.py http://www.openssl.org/.git/
我們打開軟件直接可以獲取他的目錄結構源代碼
通過分析
通過這一段代碼分析我們注意89行 他有有個判斷 判斷我們輸入的值有多少個相等 有一個$same_count++一次。
我們再看下面代碼 如果有$same_count=2 則就給prize=5 prize就是我們的金錢 也就是說你兩個數值對上才給你獎勵5 我們看到最后要是7個都對上就獎勵5000000這樣我們就可以購買flag了
先看點PHP弱類型小知識
PHP有兩種比較符號==與===
=== 在進行比較的時候,會先判斷兩種字符串的類型是否相等,再比較
== 在進行比較的時候,會先將字符串類型轉化成相同,再比較
上述php弱類型基礎引用 https://www.cnblogs.com/Mrsm1th/p/6745532.html
我們再回到上面的代碼分析 只要相等 那就是為真 這里是一個PHP弱類型比較 那么我們是不是可以構造這樣的語法 都為true 也就是7個true, true, true, true, true, true, true
開啟抓包修改值
修改后
{"action":"buy","numbers":[true,true,true,true,true,true,true]}
Forward
我們要多重復幾次這樣我們才能賺夠錢買
OJBK 直接購買flag
OK 完成