20145316《网络对抗》Exp9 Web安全基础实践学习总结

20145316《网络对抗》Exp9 Web安全基础实践学习总结

基础问题回答

SQL注入攻击原理,如何防护

  • SQL注入,就是攻击者经过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到让后台数据库执行恶意的SQL命令的目的,并根据程序返回的结果,得到某些攻击者想得知的数据。
  • 防范:web

    • 1.检查变量数据类型和格式
    • 2.过滤特殊符号
    • 3.绑定变量,使用预编译语句

    XSS攻击的原理,如何防护

  • XSS攻击相似于SQL注入攻击,攻击以前,咱们先找到一个存在XSS漏洞的网站,XSS漏洞分为两种,一种是DOM Based XSS漏洞,另外一种是Stored XSS漏洞。理论上,全部可输入的地方没有对输入数据进行处理的话,都会存在XSS漏洞,漏洞的危害取决于攻击代码的威力,攻击代码也不局限于script。
  • 防范:只要咱们的代码中不存在漏洞,攻击者就无从下手,咱们要作一个没有缝的蛋。XSS防护有以下方式————完善的过滤体系、Html encode。sql

    CSRF攻击原理,如何防护

  • CSRF全名是Cross-site request forgery,是一种对网站的恶意利用,CSRF比XSS更具危险性。经过假装受信任用户的请求利用受信任网站,利用用户在可信网站上没有登出的COOKIE作恶意操做
  • 防范:数据库

    • 1.经过 referer、token 或者 验证码 来检测用户提交。
    • 2.尽可能不要在页面的连接中暴露用户隐私信息。
    • 3.对于用户修改删除等操做最好都使用post 操做 。
    • 4.避免全站通用的cookie,严格设置cookie的域。

    实验总结与体会

  • 本次实验很是有趣,不一样于以往在虚拟机内操做的实验,在webgoat网站上作实验有一种“闯关”解题的快感,一次性学会了不少攻击方法。也掌握了Berpsuite等工具的使用方法。最后一次实验,完美收官。浏览器

    实验过程

  • 先开启webgoat,等待加载。
  • 当出现下面这张图所示情景时Starting ProtocolHandler,说明开启成功
  • 在浏览器中访问localhost:8080/WebGoat,用默认用户名密码登录便可
    安全

    1.Stored XSS Attacks

  • 这个实验的意思是存储型XSS攻击,经过输入代码使用户访问时弹出非预期的内容
  • 在title框中输入<script>alert("silly human!This is 20145316!");</script>
  • 点击submit,窗口弹出,攻击成功
    cookie

    2.Reflected XSS Attacks

  • 相似上一个实验,是个买东西的页面,在code框中输入<script>alert("this is 5316,I'm rich");</script>
  • 弹出窗口,攻击成功
    网络

    3.Cross Site Request Forgery(CSRF)

  • 这个实验的目的是经过邮件的方式伪造一个转帐请求,查看右侧参数栏内参数
  • 在文本框中提交一个有URL恶意请求的代码,<iframe src="attack?Screen=题中给出的scr&menu=题中给出的menu&transferFunds=转帐金额"></iframe>
  • 攻击成功
    xss

    4.CSRF Prompt By-Pass

  • 比上个实验多了一个“确认请求”,因此须要增长一行代码,以下
  • 攻击成功,两个请求内容都有
    工具

    5.Phishing with XSS

  • 该实验的目的是读取登陆用户的用户名和密码。首先输入编辑的钓鱼网站代码(XSS攻击代码)
  • 代码以下,参考了蔡野同窗的博客
  • 在搜索框中输入攻击代码后点击搜索,会看到一个要求输入用户名密码的表单以下,输入用户名密码点击login
  • WebGoat会将输入的信息捕获并反馈回来,攻击成功
    web安全

    6.Numeric SQL Injection

  • 题目大意是这个表单容许使用者看到天气数据,利用SQL注入使得能够看见全部数据
  • 这里要利用到代理berpsuite来对网页内容进行篡改,具体过程周岐浩同窗博客写的很清楚,下面是个人操做过程图





  • 攻击成功

    7.String SQL Injection

  • 这个题目是让你们使用SQL注入让全部的信用卡号都看得见
  • 先尝试一个输入,根据结果来找到咱们要进行SQL注入的位置
  • 在文本框中输入' or 1=1 --进行攻击,成功

    8.Log Spoofing

  • 该实验是在代码中加入用户名admin迷惑用户,当用户登录的时候登陆失败,但觉得本身登录成功了。
  • 在user name 处写入代码20145316%0d%0aLogin Succeed!%0d%0aUsername: admin
  • 攻击成功

    9.LAB:SQL Injection(Stage 1 String SQL Injection)

  • 使用admin帐户Neville登录
  • 首先在密码栏中输入' or 1=1 -- 进行永真式SQL注入,可是登陆失败
  • 查看网页代码发现弑密码长度设置过短,将密码长度修长
  • 再次输入' or 1=1 --,成功

    10.LAB:SQL Injection(Stage 3:Numeric SQL Injection)

  • 登录使用employee帐号Larry登录
  • 首先作上一个实验修改密码限制长度的操做
  • 点击ViewProfile,发现并无办法使老板排在最前面
  • 更改网页代码,将ViewProfile参数改为以下
  • 再次' or 1=1 --登录,成功

    记录


相关文章
相关标签/搜索