【详解】webgoat Web渗透测试平台Injection单元 攻略
一、什么是webgoat?WebGoat是OWASP组织研制出的用于进行web漏洞实验的应用平台,用来说明web应用中存在的安全漏洞。WebGoat运行在带有java虚拟机的平台之上,当前提供的训练课程有30多个,其中包括:跨站点脚本攻击(XSS)、访问控制、线程安全、操作隐藏字段、操纵参数、弱会话cookie、SQL盲注、数字型SQL注入、字符串型SQL注入、web服务、Open Authent
目录
2.1.5 Try It! String SQL injection
一、什么是webgoat?
WebGoat是OWASP组织研制出的用于进行web漏洞实验的应用平台,用来说明web应用中存在的安全漏洞。WebGoat运行在带有java虚拟机的平台之上,当前提供的训练课程有30多个,其中包括:跨站点脚本攻击(XSS)、访问控制、线程安全、操作隐藏字段、操纵参数、弱会话cookie、SQL盲注、数字型SQL注入、字符串型SQL注入、web服务、Open Authentication失效、危险的HTML注释等等。WebGoat提供了一系列web安全学习的教程,某些课程也给出了视频演示,指导用户利用这些漏洞进行攻击。
webgoat的安装请见:https://blog.csdn.net/weixin_50012220/article/details/119209336
二、Injection
2.1 SQL Injection (intro)
这一节介绍了简单的SQL语句以及利用SQL语句去完成一些简单的“恶作剧”
2.1.1 查询Bob的岗位
题目是:
题目要求查询Bob的部门名称,用select开头的SQL语句即可
答案为:
select department from employees where first_name like 'Bo%'
Congratulations!
2.1.2 更改Tobi的部门
本题要求把tobi的部门更改为sales
更新数据库内容的语句为: update 表名 set 要更改的行=要更改的值 where 筛选条件
update employees set department='Sales' where first_name='Tobi'
Congratulations!
2.1.3 增加一个phone部门
题目要求增加一列,名称为phone
增加一列的语法为:alter table 要增加列的表名 add 列名 数据类型 默认值【可选】
alter table employees add phone varchar(20);
Congratulations!
2.1.4 授权
题目:
题目要求把alter table这个表的权限赋予给'UnauthorizedUser',也就是未授权用户
授权的格式为:grant 表名 to 目标用户
grant alter table to UnauthorizedUser
Congratulations!
2.1.5 Try It! String SQL injection
题目为
本题要求实现sql注入,按照题目要求,应该构造一个 任意值 or true(永真) 的SQL语句实现查询所有用户,第一个需要构成一个引号闭合 选项里面只有 ' 符合要求,其余选项会产生额外多的引号;第二个选择应选择 or ,任意条件 or true,这个构造的SQL才为永真式,实现查询所有数据的目的;第三题 根据题目所给条件,已给出末尾 ' 闭合,那么前面只需要'1'='1 即可~
2.1.6 查询所有员工的信息
题目为:
本题要求利用employees name和Authentication TAN输入框实现SQL注入以呈现所有的员工数据
从逻辑上以及题目所给语句来看,实现查询员工首先要完成两步鉴权,名字和TAN函数都要正确;题目中所给出的查询语法:
"SELECT * FROM employees WHERE last_name = '" + name + "' AND auth_tan = '" + auth_tan + "';
倘若从TAN函数构造永真式,那么第一步鉴权last_name就无法实现查询所有,故我们尝试构造last_name的永真式,然后注释掉第二步鉴权即可
have a try:
employee name:aa' or '1'='1' ;--
TAN: aaa
成功!!!
2.1.7 修改员工的薪水
题目要求利用sql注入漏洞实现数据更改
数据更改的SQL语句为:
update 表名
set 列名=要更改的值
where 筛选条件;
还是延续上一个题目的思路,闭合第一个输入框的鉴权后,使用;分割语句,添加修改的SQL语句,最后再注释掉第二步鉴权即可
employees name: ' ; update employees salary=666666 where first_name='John';--
TAN:随便写
芜湖!~
2.1.8 删库跑路
题目:
本题要求删库跑路,删库跑路的语法是:
drop table 表名;
直接drop table access_log;会报错,因为这不是公司命令行的窗口,仍然是一个查询界面,需要我们自行构造引号闭合后,再执行删库跑路
'; drop table access_log; --
芜湖起飞!~
injection的其他内容在路上惹~
by:M0nH1N
更多推荐
所有评论(0)