攻防世界进阶upload
攻防世界進階upload
注冊登陸后,發現上傳頁面
試著上傳一個文件3.php:
內容如下:
我們試著將它改個名字抓包,并且改為jpg,措辭測試發現只有jog能夠傳上去
雖然上傳成功,但是并不能顯示出文件名的位置,蟻劍連接失敗
看到回顯名稱有uid號,無奈的絲毫沒有頭緒
只好看了大佬的博客,竟然是注入,文件名稱注入
當輸入文件名為注入語句時,發現并沒有反應,出現上傳成功,但是并沒有回顯,可能存在過濾
嘗試多次發現過濾的時select和from,所以利用selselectect和frfromom進行繞過
首先,用注入得到表名稱
這里用到了CONV,substr,hex
不轉成數字,完全沒有回顯結果,所以用hex先將字符轉換成16進制,然后用CONV函數將16進制轉化為10進制,依次獲取子串的12位,用substr截取12是因為一旦過長,會用科學計數法表示。
將得到的回顯,先轉化為二進制,再轉為字符串,得到部分庫名
同上,得到后半部分的內容
轉化后為
合成數據庫名稱web_upload
下一步得到表名稱
轉化后為
繼續得到
s '+(seleselectct+CONV(substr(hex((selselectect table_name frfromom information_schema.tables where table_schema='web_upload' limit 1,1)),13,12),16,10))+'.jpg
繼續得到:
s '+(seleselectct+CONV(substr(hex((selselectect table_name frfromom information_schema.tables where table_schema='web_upload' limit 1,1)),25,12),16,10))+'.jpg s_here拼接起來得知存放flag的表名為: hello_flag_is_here
下面得到表中的列名:
同樣的方法,得到值7102823=> lag
得到列名:i_am_flag
求字段內容:
得到:
同樣的方法,得到值
92806431727430=> Th.e_F
560750951=> !lag
拼接后:得到:flag: !!_@m_Th.e_F!lag
注意:提交的flag只需要內容,不需要任何前綴,而且在寫文件名時,不要用數字,不然會沖突,會使回顯的正確值加上你的數字值,導致錯誤
總結
以上是生活随笔為你收集整理的攻防世界进阶upload的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: idea,解决unable inport
- 下一篇: html/css基础篇——link和@i