WebGoat 网安攻击模拟训练笔记
WebGoat 网安攻击模拟训练笔记
1 SQL语句注入
1.1 命令注入—Command Injection
1.1.1 操作说明
右键左边选择框的组建,点击检查,在<option>
标签中末尾添加 & ifconfig
然后点击 View 按钮执行,下方显示 ifconfig
(Windows下为ipconfig
)命令的输出结果
1.1.2 结果截图
1.2 数字型SQL注入—Numeric SQL Injection
1.2.1 操作说明
右键选择框组建,点击检查,修改
修改完成选择对应的内容,然后点击 Go!
按钮执行
1.2.2 结果截图
1.3 日志欺骗—Log Spoofing
1.3.1 操作说明
通过日志的换行符(%0d%0a)来欺骗管理员,输入:q1jun%0d%0aLogin Succeeded for username: admin
点击login后:
1.3.2 结果截图
1.4 SQL字符串注入—String SQL Injection
1.4.1 操作说明
在输入框中输入 Smith ` or 1=1 – 使得查询SQL语句为:
1 | SELECT * FROM user_data WHERE last_name = 'Smith' or 1=1--' |
最后的 --
为SQL语句的注释符,保证语句的正确,然后点击Go!
1.4.2 结果截图
1.5 数据库后门—Database Backdoors
1.5.1 操作说明
Stage1:
输入**101; update employee set salary=100000 where userid = 101;
**
使其组成以下两条完整的SQL语句,第二条修改薪资为10w (不嫌多,嘿嘿)。
1 | select userid, password, ssn, salary, email from employee where userid=101; |
Stage2:
根据提示,创建一个数据库触发器:
1 | CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='john@hackme.com'WHERE userid = NEW.userid |
注入代码:
1 | 101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='john@hackme.com'WHERE userid = NEW.userid |
注入成功:
1.5.2 结果截图
2 跨站脚本XSS攻击
2.1 钓鱼攻击—Phishing with XSS
2.1.1 操作说明
构建XSS代码:
放入Search中,点击搜索:
下方提示输入账号密码进行钓鱼,等待用户提交:
2.1.2 结果截图
2.2 常驻攻击—Stored XSS Attacks
2.2.1 操作说明
在输入消息框中填入XSS代码:
1 | <script language="javascript" type="text/javascript"> |
提交后点击下方可以执行代码。
2.2.2 结果截图
2.3 反射型XSS攻击—Reflected XSS Attacks
2.3.1 操作说明
在digit access code框中添加:
<script>alert(document.cookie);</script>
点击Purchase:
2.3.2 结果截图
2.4块反射攻击—Block Reflected XSS
2.4.1 操作说明
Stage 1:
登入Tom的个人页面,修改LastName为: <script>alert('hello,hack');</script>
保存成功时会执行代码:
通过Jerry查看Tom资料时也会显示该弹窗。
2.4.2 结果截图
3 跨站请求伪造CSRF攻击
3.1 Cross Site Request Forgery(CSRF)
3.1.1 操作说明
在email中包含一张图片,图片的URL指向一个恶意请求。实验中,URL应指向attack servlet,参数有Screen与menu,还有一个额外的参数transferFunds带有任意数值。收件人刚好进行身份认证,正在转移资金:
1 | <img src="/Users/q1jun/Documents/笔记/课程笔记/软件&Web安全开发/attack?Screen=2078372&menu=900&transferFunds=5000"/> |
点击title:
3.1.2 结果截图
3.2 CSRF Prompt By-Pass
3.2.1 操作说明
实验需要向新闻组发送email包含以下恶意请求,首先转账,然后请求提示确认。
在email的正文中输入如下javascript代码:
1 |
|
3.2.2 结果截图
3.3 CSRF Token By-Pass
3.3.1 操作说明
进入CSRF Token By-Pass后在网页URL后加上transferFunds=main
,用以进入转账页面,获取token。
回车:
通过转账页面输入5000进行提交操作,然后通过Burpsuite进行抓包:
分析所得数据包:
可以得到Post请求路径
中的参数和CSRFToken
的值!
接下来构造CSRF代码,注意以下参数:
复制到Message框中,点击提交:
在下面的Message List中点开邮件,输入5000并提交:
完成: