2019-2020-2 20175317钟睿文《网络对抗技术》Exp9 Web安全基础

2019-2020-2 20175317钟睿文《网络对抗技术》Exp9 Web安全基础

实践内容

理解常用网络攻击技术的基本原理,做不少于7个题目,包括(SQL,XSS,CSRF)。Webgoat实践下相关实验。实践过程如下:

WebGoat安装

WebGoat是OWASP维护的,用于进行WEB漏洞测试和学习的JAVA应用程序。
下载jdk-8u161-linux-x64.tar.gz文件,然后用netstat -tupln | grep 8080查看端口是否被占用,如果被占用,用kill+进程号终止占用8080端口的进程。在含有webgoat-container-7.0.1-war-exec.jar文件的目录下执行java -jar webgoat-container-7.0.1-war-exec.jar

输入图片说明

输入图片说明

在浏览器中输入http://localhost:8080/WebGoat进入WebGoat登录界面,使用默认用户名密码登录

输入图片说明

输入图片说明

SQL注入攻击

命令注入Command Injection

命令注入攻击技术背后的技术方法,简单易学,能造成大范围的损害,危及系统安全。尽管这类风险数目令人难以置信,互联网中的系统很容易受到这种形式的攻击。这种攻击容易扩散,造成更坏的影响。但是对于这类威胁,一点常识和预先预防几乎可以完全阻止。命令注入是在正常的参数提交过程中添加恶意代码以达到执行某条指令的目的。

右键选择inspect Element审查网页元素,在复选框中选择一栏代码,右键选择Edit At Html进行修改,添加"&&ifconfig"

输入图片说明

点击view,可以看到IP地址,攻击成功。

输入图片说明

数字型注入Numeric SQL Injection

注入数字型数据如永真式以实现注入效果,在station字段中注入特征字符,能组合成新的SQL语句,例如:SELECT * FROM weather_data WHERE station = [station]可以通过注入SQL字符串查看所有天气数据。

在城市复选框对应源码的Value值中添加or 1=1

输入图片说明

单击go查看效果:

输入图片说明

日志欺骗Log Spoofing

这种攻击通过在日志文件中插入脚本实现清除攻击者在日志中痕迹的作用。

用户名输入20175317%0d%0aLogin Succeeded for username: admin,密码随意,可以看到登陆成功

输入图片说明

这种漏洞可以被攻击者利用以添加恶意脚本,脚本的返回信息管理员能够通过浏览器看到。

字符串注入String SQL Injection

字符串SQL注入攻击对任何数据库驱动的站点都构成了严重威胁。 攻击背后的方法很容易学习,所造成的损害可能从相当大的损害到整个系统的损害。 尽管存在这些风险,但Internet上数量惊人的系统仍容易受到这种形式的攻击。它不仅容易引发威胁,而且只要一点常识和前瞻性,就可以轻松地避免这种威胁。

基于SELECT * FROM user_data WHERE last_name = '?'查询语句构造自己的SQL注入字符串,姓名框输入Smith' or 1=1--,执行后可以看到所有人的卡号等信息:

输入图片说明

数据库后门Database Backdoors

使用字符串SQL注入执行多个SQL语句,使用易受攻击的字段创建两个SQL语句,第一个是系统的,第二个是自己定义的。首先输入101查看现有的信息

输入图片说明

可以看到现在的薪水是55000,接下来我们使用101; update employee set salary=100000,执行两条语句,第一条用于查看信息,后面的update则将薪水更新为100000……哈哈哈哈哈这让我想起了侠盗猎车手罪恶都市中的作弊码……

输入图片说明

使用101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='[email protected]'WHERE userid = NEW.userid在每行插入前修改邮箱为指定邮箱:

输入图片说明

XSS攻击

XSS钓鱼Phishing with XSS

编写好表单代码,在搜索框输入代码,页面增加一个表单:

输入图片说明

用户在其中输入用户名和密码信息,攻击者就可以通过WebGoat获取这些信息:

输入图片说明

存储型XSS攻击Stored XSS Attacks

存储型XSS攻击常见于论坛等留言平台,用户留言的时使用JavaScript脚本作为留言内容,这段脚本就保存在数据库中。任何用户在打开网页时该脚本自动运行,达到写入非法的消息内容,从而导致其他用户访问时载入非预期的页面或内容的目的。

title中随意输入,留言板中输入<script>alert("I'm 20175317!");</script>,提交后如下:

输入图片说明

反射型XSS攻击Reflected XSS Attacks

攻击者使用攻击脚本创建一个URL,受害者点击该url就会受到攻击。序列码输入<script>alert(" 20175317!");</script>,之后提交:

输入图片说明

CSRF攻击

跨站请求伪造Cross Site Request Forgery(CSRF)

跨站请求伪造是一种让用户加载一个包含网页的图片的一种攻击手段。提交请求时浏览器将添加与站点相关的所有cookie。因此,如果用户对站点进行了身份验证,并且拥有永久或当前会话cookie,那么站点将无法将其与合法的用户请求区分开来。通过这种方式,攻击者可以控制受害者执行他们没有许可的操作。

根据自己参数的实际情况,在message中使用<img src="http://localhost:8080/WebGoat/attack?Screen=326&menu=900&transferFunds=1000" width="1" height="1" />将url隐藏到一个隐藏图片中,提交后转走用户1000元

输入图片说明

绕过CSRF确认CSRF Prompt By‐Pass

CSRF Prompt By‐Pass欺骗受害者加载包含“伪造请求”的页面,以便使用受害者的凭据执行命令。

根据自己参数的实际情况,在message中使用

<iframe src="attack?Screen=327&menu=900&transferFunds=1000"> </iframe>
<iframe src="attack?Screen=327&menu=900&transferFunds=CONFIRM"> </iframe>

输入图片说明

点击Submit提交:

输入图片说明

实验中遇到的问题

问题一:webgoat-container-7.0.1-war-exec.jar安装后没有功能

问题一解决方法:参考OpenJDK换为JDK与Kali-JDK1-8安装,重新配置jdk。

输入图片说明

配后重新进入网页,发现会多出很多功能:

输入图片说明

实验总结与体会

问题回答

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

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

(3)CSRF攻击原理,如何防御

参考资料

OpenJDK换为JDK

Kali-JDK1-8安装

猜你喜欢

转载自www.cnblogs.com/20175317zrw/p/12930745.html