Exp9 Web安全基础
2021-02-13 23:21
标签:eal toc rip ESS ali onclick confirm orm 注入攻击 本实践的目标理解常用网络攻击技术的基本原理。 在本次实验中,用到的环境为: 2、WebGoat默认使用8080端口,开启前先用 3、WebGoat运行java平台之上,使用 4、使用 5、浏览器中打开WebGoat登录界面 (1)按F12进入调试界面,选择 (2)例如在 (3)点击 通过注入SQL字符串的方式查看所有的天气数据 (2)在选项列表中,任意选择一个值,比如“101”,后面加上or 1=1(用 (3)点击 通过插入脚本实现日志欺骗 (2)可以往该应用中注入回车(0D%)和换行符(%0A)。在username 中填入Smith%0d%0aLogin Succeeded for username: admin,以达到修改日志的目的: (3)攻击者可以利用这种方式向日志文件中添加恶意脚本,脚本的返回信息管理员能够通过浏览器看到。比如,将 基于查询语句 (2)输入以下代码,得到所有用户的信用卡号码: 攻击者可以创建一个触发器,该触发器在创建新用户时,将每个新用户的Email 地址设置为攻击者的地址 (2)若要执行两个语句,中间需要用分号分隔。输入注入语句: (3)若设置触发器,可使用以下查询条件: 在XSS的帮助下,可以实现钓鱼工具或向某些官方页面中增加内容。对于受害者来说很难发现该内容是否存在威胁。如创建一个 搜索这段代码,可以看到页面中增加了一个表单: (2)还需要一段脚本(这段代码会读取在表单上输入的用户名和密码信息,将这些信息发送给捕获这些信息的WebGoat): (3)将这两段代码合并: 搜索这段代码,出现用户名和密码的填写界面: 填写并登录,WebGoat会反馈输入的信息: 写入非法的消息内容,可以导致其他用户访问时载入非预期的页面或内容 恶意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击的 CSRF通过伪装来自受信任用户的请求来利用受信任的网站 (2)在 以图片的的形式将URL放进Message框,这时的URL对其他用户是不可见的,用户一旦点击图片,就会触发一个CSRF事件,点击 (3)输入任意 (1)查看页面右下方 (2)在 (3)点击 1、kali默认已安装Apache,直接使用 2、在浏览器输入 1、在原有 2、浏览器中输入 1、kali中输入 2、输入 图 本次实验做的是DNS欺骗。感觉钓鱼网站的原理不是那么高大上了,每个人都可以做一个简易版的钓鱼网站。不过这也提醒我们,不要随便乱点什么奇奇怪怪的链接,出现的界面非常有可能偷梁换柱了。 Exp9 Web安全基础 标签:eal toc rip ESS ali onclick confirm orm 注入攻击 原文地址:https://www.cnblogs.com/seven-moon/p/12996529.html
一、实验目标
1、做不少于7个题目,共3.5分。包括(SQL,XSS,CSRF)。
2、抓图包括学号,P图或无学号,每张扣0.5分 ,超过两张者此项不得分。(1分)
3、抄袭别人者0分二、实践过程
(一)实验环境
WebGoat
1、下载jar包webgoat-server-8.0.0.M26.jar
一直下载不下来,然后下载了另一个:webgoat-container-7.0.1-war-exec.jarnetstat -tupln | grep 8080
查看端口是否被占用,如果被占用,用kill 进程号
终止占用8080端口的进程。java -version
查看jdk版本。java -jar webgoat-container-7.0-SNAPSHOT-war-exec.jar
开启WebGoat
,出现Starting ProtocolHandler ["http-bio-8080"]
之后就开启成功了。:http://localhost:8080/WebGoat
(可以直接使用在界面里看到的两组用户名和密码登陆)(二)SQL注入攻击
1、命令注入(Command Injection)
inspect Element
对源代码进行修改:BackDoors.help
后面加上"& netstat -an & ipconfig"
(用Edit At Html
进行修改):View
,可看到命令的输出结果:2、数字型SQL注入(Numeric SQL Injection)
(1)按F12进入调试界面,选择inspect Element
对源代码进行修改:Edit At Html
进行修改):Go
,可以看到攻击成功:3、日志欺骗(Log Spoofing)
(1)在文本框中输入用户名:smith Login Succeeded for username admin,这样用户名后面的信息会在同一行显示,而不是在新的一行。admin
作为用户名输入。4、字符串注入(String SQL Injection)
SELECT * FROM user_data WHERE last_name = ‘?‘
构造SQL 注入字符串绕过认证
(1)正常情况下只能查询到用户名对应的信用卡号码:’ or 1=1 --
// 或者
Snow‘ or 1=1 --
5、数据库后门(Database Backdoors)
(1)输入102,得到该用户的信息(发现输入的语句没有验证,很容易进行 SQL 注入):102; update employee set salary=10000
由于WebGoat 使用的是MySQL数据库,不支持触发器,因此以上并不能在这里真正实现102;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email=‘john@hackme.com‘ WHERE userid = NEW.userid
(二)XSS攻击
1、跨站脚本钓鱼攻击(Phishing with XSS)
form
,要求填写用户名和密码
(1)一个带用户名和密码输入框的表格如下所示:
2、存储型XSS攻击(Stored XSS Attacks)
(1)在Message
中构造语句,Title任意。提交后可发现刚创建的帖子
test5328
,点击5328
,然后会弹出一个对话框,证明XSS攻击成功:3、反射型XSS攻击(Reflected XSS Attacks)
(1)在Enter your three digit access code
中构造语句,点击
Purchase
,成功显示警告框,内容为我们script脚本指定的内容:(三)CSRF攻击
1、跨站请求伪造(Cross Site Request Forgery (CSRF))
(1)查看页面右下方Parameters
中的src
和menu
值,分别为290和900:Message
中构造语句:Submit
提交(其中语句中的&transferFunds=5000
,即转走的受害人的金额;宽高设置成1像素的目的是隐藏该图片)Title
,提交后,在Message List
中生成以Title
命名的链接(消息)。点击该消息,当前页面就会下载这个消息并显示出来,转走用户的5000元,从而达到CSRF攻击的目的。2、绕过 CSRF 确认( CSRF Prompt By‐Pass)
Parameters
中的src
和menu
值,分别为328和900:Message
中构造语句:
Submit
生成以Title
命名的链接,点击链接,攻击成功三、思考题
(一)SQL注入攻击原理,如何防御
service apache2 start
命令打开Apache服务即可。如果没有任何错误提示,即表明成功开启。
图打开Apache服务127.0.0.1
,如果可以打开Apache的默认网页,则开启成功。
图开启成功(二)XSS攻击的原理,如何防御
simple_form.html
基础上,添加一段JavaScript代码,以完成对用户名(邮箱)和密码的验证。/var/www/html/login_test.html
打开网页。
图网页(三)CSRF攻击原理,如何防御
/etc/init.d/mysql start
开启MySQL服务。
图开启MySQL服务mysql -u root -p
使用root权限进入,默认的密码是password。
图四、实践总结与体会
五、参考资料