SDUT_CTF_WEB题目writeup

平台链接http://sctf.sdutislab.cn/challenges

SDUT_CTF_WEB题目writeup_第1张图片
闲的没事做了做实验室自己搭的平台,把web题目writeup放出来

签到题

右键查看源代码SDUT_CTF_WEB题目writeup_第2张图片

芝麻开门

SDUT_CTF_WEB题目writeup_第3张图片
输入口令:zhimakaimen 那就输呗 结果发现 zhimakaimen是11位,但是输入框最大允许输入10位
f12改一下前端验证把最后一个n输进去,flag就出来了
SDUT_CTF_WEB题目writeup_第4张图片

层层递进

看源代码之后,iframe奇怪!
那些属性都是0,于是当然要点链接进去看看了,每次都点第一个iframe里的链接,最后进了一个404.html的链接
SDUT_CTF_WEB题目writeup_第5张图片
就到了这里,完全被这个故事吸引了,而key还是没找到。。
不得不说眼瞎了,这堆我看起来没用的js。。我已经不想说话了
SDUT_CTF_WEB题目writeup_第6张图片
根据提示与右键源码,可以知道用\来使单引号闭合
关键是username=\&password=or 1=1%23 (%23表示#,直接#不行。。。不知道为什么要url编码后才可以)
这样子 sql语句就变成了
SELECT * FROM users WHERE name=’\’ AND pass=’ or 1= 1#’;(表示被闭合掉了)
这样就可以得到flag了:
nctf{sql_injection_is_interesting}

变态的JS

运行题目的代码,得到1bc29b36f623ba82aaf6724fd3b16718.php
回去构造链接(http://teamxlc.sinaapp.com/web3/b0b0ad119f425408fc3d45253137d33d/1bc29b36f623ba82aaf6724fd3b16718.php)
提示tip在脑袋(head)里,那看头咯,返回包里有tip,提示history of bash
不知道什么玩意,百度咯,可以看看(http://blog.csdn.net/pan_tian/article/details/7715436)
用法就是http://teamxlc.sinaapp.com/web3/b0b0ad119f425408fc3d45253137d33d/.bash_history
打开提示一个zip文件,下载就好了
http://teamxlc.sinaapp.com/web3/flagbak.zip
flag is:nctf{bash_history_means_what}

黑进去

存在md5加密
username: 1’ and 1=2 union select ‘c4ca4238a0b923820dcc509a6f75849b’ – -
password: 1
拿到flag

交作业吧

西普文件上传原题

The Ducks

变量覆盖
post传参时传入thepassword_123=123&pass=123
得到flag

写题解写到这发现都是南邮ctf的题,下面的题解只是本实验室内部出题题解

来自谷歌的你

改http头:referer:google
得到flag

慢点再慢点

发现什么都没有,抓包看看,发现还是什么都没有
这是看一下题目地址
http://118.89.168.43:8001/web/web1001
但我们打开时成为http://118.89.168.43:8001/web/web1001/no_key.php
有可能是个301跳转
用burp修改跳转到源地址
SDUT_CTF_WEB题目writeup_第7张图片
发现txt文件,打开拿到flag

永真式注入

SDUT_CTF_WEB题目writeup_第8张图片

SQL联合查询

用户名:1’ and 1=2 union select 1– -
密码:1

畸形化SQL语句

SDUT_CTF_WEB题目writeup_第9张图片
发现上来屁话一大堆,意思就是说有过滤
如果php代码不熟的话,可以在本地搭建环境,测试到底如何过滤
SDUT_CTF_WEB题目writeup_第10张图片
SDUT_CTF_WEB题目writeup_第11张图片
发现所有关键字全部被过滤掉了
这时想就可以用套接字的一种方式
$input=”1’ anandd 1=2 ununionion seselectlect ‘123”;
这里写图片描述
语句就正常了
SDUT_CTF_WEB题目writeup_第12张图片
不要忘记把前端限制去掉,不然输入框为只读,而且最大输入长度为1

我的初恋

SDUT_CTF_WEB题目writeup_第13张图片
这个出题者总是以极强的故事性把我们带入其中(屁话还是一大堆)
php strcmp函数漏洞,传递数组绕过验证, 抓包
SDUT_CTF_WEB题目writeup_第14张图片
strcmp漏洞细节自行百度

特制浏览器

一看题面就知道是改http头,不过这里有个坑点
SDUT_CTF_WEB题目writeup_第15张图片
改UA头时 改为SDUT-CTF-Browser, 最后.exe不要加

去掉引号的注入

这个题还以为是什么php函数漏洞,结果就是一个宽字节注入
SDUT_CTF_WEB题目writeup_第16张图片
gbk编码的宽字节注入,payload构造如下
http://118.89.168.43:8001/web/sql1004/login.php?usr=1%df%27%20union%20select%201–%20-&pwd=1
宽字节注入自行百度
这里写图片描述

无空格SQL注入

根据题目意思和题面所给出的代码,可以判定就是一个用其他字符代替空格完成注入的一个题
可以参照我的这篇文章完成题目
payload构造如下
这里写图片描述
flag就出现了

UNION_Plus

老套路了
payload:
id: 1 union select ‘c4ca4238a0b923820dcc509a6f75849b’, 2
password: 1
其中c4ca4238a0b923820dcc509a6f75849b是密输入密码1的md5值

代码审计1

发现又是php函数的漏洞,百度查下资料,数组可以绕过
这里写图片描述

到底是不是注入?

进去发现需要id参数,那就传进去
SDUT_CTF_WEB题目writeup_第17张图片
题目给的很清晰,flag位置全都告诉了
做了几次尝试,除了有具体的sql语句之外什么都没有
我猜是基于时间的盲注
http://www.mingzhegao.com.cn/ctf_test/login.php?id=1%27%20and%20sleep(5)–%20-
果然存在延时,也就是说存在时间盲注漏洞
算了,不想手注了,直接sqlmap开跑吧
SDUT_CTF_WEB题目writeup_第18张图片
存在注入点
这个题最后又加了个判断UA头,如果是sqlmap就结束,所以sqlmap如果不加–random-agent随机头的参数压根跑不出来

注入

一开始进去,啥啊,什么都注不出来,看来后台判断写的很死
还有个注册按钮,那就注册试试吧
注册进去之后
SDUT_CTF_WEB题目writeup_第19张图片
发现一个点 这个系统在找和你有相同手机号人的username
在用233的手机号重新注册一个看看
SDUT_CTF_WEB题目writeup_第20张图片
果然,那这就算有个注入点了
重新注册在手机号里构造payload
发现有验证,只能为数字,以前做过一个题,绕过数字,转为16进制
SDUT_CTF_WEB题目writeup_第21张图片
SDUT_CTF_WEB题目writeup_第22张图片
SDUT_CTF_WEB题目writeup_第23张图片
用户数据库版本都出来了
再搞出表名和列名
SDUT_CTF_WEB题目writeup_第24张图片
表名有两个,flag和user
很明显flag在表flag中
SDUT_CTF_WEB题目writeup_第25张图片
SDUT_CTF_WEB题目writeup_第26张图片

点击一百万次

发现是一段js代码做的伪动态网页,尝试着点几次,再结合题目,明白了出题人的目的,点击100万次后,flag就会出来。右键审一下源码看看有什么别的东西
SDUT_CTF_WEB题目writeup_第27张图片
这段js脚本包含的信息量已经足够做这个题目了,它将你点击的次数存储在clicks这个变量里,只要这个变量的值超过一百万,这个题目就game over。
两种做法:
一:找个暴力点击模拟器,启动,让它一直运行,点击超过一百万次就会出flag
二:控制台直接给clicks变量赋值,使他比一百万大。
SDUT_CTF_WEB题目writeup_第28张图片

登录入口在哪

http://118.89.168.43:8001/web/web1006/robots.txt

http://118.89.168.43:8001/web/web1006//D56B699830E77BA53855679CB1D252DA/login.php

php序列化练习

相似题解已经给出来了,教学题

你可能感兴趣的:(网络安全)