刷CTF的WriteUp [持续更新]

Note

SCUCTF:

xctf平台

XCTF 4th-CyberEarth

id可能有问题,扔到bp里爆破,2333的时候出flag.私以为这种工具流还挺好用…

XCTF 4th-QCTF-2018 NewsCenter

post型的注入,扔到sqlmap里,–data ‘search’跑表, 看infomation_schema 最后有个fl4g列,完事儿

csaw-ctf-2016-quals

看到about页面有使用到git, 那么试试有没有git泄露呢?访问/.git/目录,存在泄露,githack工具走起
审计index.php的源代码,最终采用代码注入搞定,

tinyctf-2014-NaNNaNNaNNaN-Batman

js代码,有乱码,需要整理一下,写成规范的函数形式,审计正则匹配,看到有长度限制,删除冗余部分,F12的console里调试一下,提交就可以了(其实可以把条件删除2333)

unserialize3

反序列化, 解出的第一题,orz
__wakeup()函数是当php进行反序列化操作(unserialize)的时候自动调用该函数
** __wakeup()方法的绕过: **一个字符串或对象被序列化后,如果其属性被修改,则不会执行__wakeup()函数,在这里就用来可以绕过exit()

csaw-ctf-2016-quals-wtf.sh-150

RCTF-2015 bug

原本是想改cookie绕过, 可是加密方式不知道. 最后还是重置密码那里进去抓包改的admin密码.
改xff为127, 进去看到注释/index.php?module=filemanage&do=???,跟进发现这么一句

filename怀疑是lfi或者命令注入, bp走一走, 这期间看了一下服务器环境, 待会儿有用:

看了下writeup, 原来是要进到upload上传界面(唉, 本菜思路不够活跃想不到).
上传的话, 测试了一下, 有以下反映:

  • 上传了其他类型的文件(如jpg文件等) | You know what I want!
  • 后缀或内容被waf拦截 | Something shows it is a php!
  • 是php5后缀但内容里没有php木马 | It is not a really php file

那么步骤就清楚了, 如何它绕过php的识别, 上传php木马, 限制如下:
1. 要检测上传内容是否有php代码(并非简单检测文件头的幻数), 经过测试, 只要文件中含有<?php xxxx ?>语句, 就会被拦截,.
2. 要检测Content-Type, 不能上传裸php文件
3. 后缀方面, php5可绕过

最后, 用php的另一种写法绕过, 这也是php的两种常规写法之一(另外一种 已被拦截,) 可参考 https://www.php.net/manual/zh/language.basic-syntax.phpmode.php

对了, 从PHP7开始,这种写法<script language="php"> </script>,已经不支持了
payload

csaw-ctf-2016-quals i-got-id-200

perl的代码审计, 主要是命令注入, 给我看蒙了, 贴一段dalao的wp

打开题目发现有三个连接。file是上传,猜测存在上传漏洞,之后是参考大佬的WP,贴过来。

其中点击Files会跳转到/cgi-bin/file.pl文件中进行执行。这里可以上传任何一个文件,然后会在下方打印出内容。那么我们猜测后台逻辑大概是这样的。

那么,这里就存在一个可以利用的地方,param()函数会返回一个列表的文件但是只有第一个文件会被放入到下面的file变量中。而对于下面的读文件逻辑来说,如果我们传入一个ARGV的文件,那么Perl会将传入的参数作为文件名读出来。这样,我们的利用方法就出现了:在正常的上传文件前面加上一个文件上传项ARGV,然后在URL中传入文件路径参数,这样就可以读取任意文件了。

将参数写成这个,读取到了系统的文件。/etc/passwd是用来存储登陆用户信息的,

img

这里再次使用bash来读取文件目录。payload:

img

最后读取flag文件,拿到flag.

img

ref:i-got-id-200