Exp9 Web安全基础 20164314

一、实践目标

       理解常用网络攻击技术的基本原理,包括(SQL,XSS,CSRF);

       在Webgoat实践下相关实验。

二、实践过程

准备工作:

       1.环境配置:

  下好jar包然后放在根目录下

  使用命令 java -jar webgoat-container-7.0.1-war-exec.jar 就可以解压运行webgoat了

 

       等待一会儿他解压,随后发现他底端出现

 Exp9 Web安全基础 20164314_第1张图片

       说明已经可以登录网页开始使用webgoat

  2.使用webgoat:

  打开Firefox,输入 http://127.0.0.1:8080/WebGoat/login.mvc ,访问webgoat。

  使用默认账号和密码登录即可,

Exp9 Web安全基础 20164314_第2张图片

  发现左边目录只有8个选项·········

      Exp9 Web安全基础 20164314_第3张图片

       在网上搜了一下,

      

       没找到啥有用的方法···

       Exp9 Web安全基础 20164314_第4张图片

  最后在李师傅的帮助下,使用如下方法解决,

       

      成了!

   

 

 (一)SQL注入攻击

   1.命令注入(Command Injection)

     目标:能够在目标主机上执行系统命令

 (1)右键网页,点击 inspect Element ,查看并编辑网页源代码,查找 BasicAuthentication.help ,在旁边加上 "& netstat -an & ipconfig" 

Exp9 Web安全基础 20164314_第5张图片

(2)点击网页中的 view 按钮,就能在网页下面看到系统的网络连接情况了

Exp9 Web安全基础 20164314_第6张图片

   2.数字型SQL注入(Numeric SQL Injection)

   目标:注入一条SQL字符串,以显示所有显示的天气数据

  (1)右键网页,点击 inspect Element ,查看并编辑网页源代码,查找 New York ,在 option value 中加入恒等真式 or 1=1 

  (2)点击 go 就可以看到所有的天气数据了

Exp9 Web安全基础 20164314_第7张图片

   3.日志欺骗(Log Spoofing)

      目标:通过在日志文件中添加一个脚本像用户名“admin”成功登录

    (1)在 user name 中输入 gly%0d%0aLogin Succeeded for username: admin(密码随意)

      Exp9 Web安全基础 20164314_第8张图片

   (2)点击 login in ,可以看到成功

     Exp9 Web安全基础 20164314_第9张图片

   4.字符串SQL注入(String SQL Injection)

      目标:作为Smith,注入一个SQL字符串,显示所有信用卡号

   (1)输入永真式 ' or '1'='1 

   (2)点击 Go! ,就可以查看所有信用卡号了

 Exp9 Web安全基础 20164314_第10张图片

   5.字符串SQL注入(String SQL Injection)

      目标:使用SQL注入作为老板(“Neville”)登录,并使用所有功能

 (1)第一次登录,在 password 中输入永真式,发现失败了,经过查看源代码,找到原因为:password最大长度不够,于是在源代码中修改最大长度

Exp9 Web安全基础 20164314_第11张图片

(2)输入永真式 ' or 1=1 -- ,登录成功,

 Exp9 Web安全基础 20164314_第12张图片

   6.盲数字SQL注入(Blind Numeric SQL Injection)

      目标:在表格中找到字段pin的值

 (1)判断pin的值是否大于2500,

         使用命令 101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 2500); 

         发现无效,于是推断pin的值小于等于2500

 (2)使用二分法进行反复猜测,最终找到pin的值为2364

Exp9 Web安全基础 20164314_第13张图片

 

(二)XSS攻击

   1.网络钓鱼和XSS(Phishing with XSS)

    目标:使用XSS和HTML插入,将html插入到该请求凭证中,添加javascript来实际收集凭证

 (1)在 search 框中输入写好的html代码,代码如下:



"phish">


This feature requires account login:



Enter Username:
"text" name="user">
Enter Password:
"password" name = "pass">
"submit" name="login" value="login" onclick="hack()">



(2)点击 search 后,下拉网页就可以看到输入框,在里面输入任意字符,点击 login ,就可以看到攻击成功了

 

   2.存储的跨站点脚本(XSS)攻击(Stored XSS)

      目标:在搜索人员页面上使用一个漏洞来创建包含反射XSS攻击的URL。确认另一个使用该链接的员工受到攻击的影响。

 (1)如下图所示输入,

 

(2)提交后,再次点击刚刚创建的帖子,成功弹出窗口,说明攻击成功

    Exp9 Web安全基础 20164314_第14张图片

   3.执行反射的XSS攻击(Reflected XSS)

      目标:执行反射XSS攻击,在搜索人员页面上使用一个漏洞来创建包含反射XSS攻击的URL。确认另一个使用该链接的员工受到攻击的影响

 (1)在搜索框中输入代码  后,点击 purchase

 (2)弹出窗口,攻击成功

    

(三)CSRF攻击

   1.跨站请求伪造(CSRF)

      目标:给新闻组发邮件。电子邮件包含一个URL指向恶意请求的图像。在这节课中,URL应该指向“攻击”servlet,其中包含了“屏幕”和“菜单”参数,以及一          个额外的参数“transferFunds”,它具有任意的数值

(1)查看自己电脑的Screen和menu的值

         Exp9 Web安全基础 20164314_第15张图片

(2)Title 中任意输入,在 Message 中输入代码,点击 Submit 后,点击下方的链接,就可以看到攻击成功了。代码如下,