【详解】webgoat Web渗透测试平台Injection单元 攻略

目录

一、什么是webgoat?

二、Injection

2.1 SQL Injection (intro)

2.1.1 查询Bob的岗位

 2.1.2 更改Tobi的部门

2.1.3 增加一个phone部门

2.1.4 授权

2.1.5 Try It! String SQL injection

 2.1.6 查询所有员工的信息

2.1.7 修改员工的薪水

2.1.8 删库跑路


一、什么是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

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M0nH1N

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值