DCNCTF-Web
文章目录
DCNCTF-Web做题的思路
简易
web1(爆破)
网站无法注册,万能密码也没有用
登陆失败提示的还是账号或密码错误……
题目提示说账号的密码设置的很简单,那就来爆破试试?
上神器bp,使用Intruder
的Cluster bomb
来爆破
登陆成功后,显示flag就在这里,但是找了好久没看到
用了搜索的功能,flag放在这边…
web2(php伪协议)
看到这边,猜测这题是文件包含,直接使用php伪协议去读取flag.php
源码
|
|
得到base64加密的内容后解密即为flag
|
|
web3(User-Agent和X-Forwarded-For伪造)
看到这个提示,直接bp抓包去修改user-agent
和x-forwarded-for
web4(命令执行)
测试的时候发现过滤了挺多的
获取flag时,cat
被过滤了,最后使用反写cat
绕过
|
|
web5(SQL注入)
提示是数据库,那么…上万能单引号'
果然报错了,直接上神器sqlmap
(比较懒。嘿嘿)
|
|
web11(php伪随机数)
随手点了下Submit
,就拿到了flag……
其实就是当传入的password
和$_SESSION['password']
相等时才能得到flag,我们直接提交就相当与提交的是空的,所以就直接出flag了
web12(php弱类型比较)
打开是这样的,猜测是用16进制编码过的,我们用Hex解码得到:
|
|
这题是php弱类型的比较,可以将3735929054
进行16进制转换来绕过,转换成0xdeadc0de
来绕过
详细的可以参考这篇文章:CTF中常见的 PHP 弱类型漏洞总结
web13(Client-ip伪造)
点击后显示您的IP不在访问列表中!
应该是要伪造client-ip
,但是题目也没说要伪造成什么。查看源码看看有没有什么东东
在源码中看到了4.3.2.1
这个ip,伪造下试试
中级
web6(session文件包含)
根据题目的提示,去看看目录下的session
看下源码,通过dcn
写入的内容会保存在session
的文件中
|
|
那这样我们不是可以使用dcn
来写一句话到session
中,然后再用filename
去包含我们写入的session
先抓包查看自己session
然后用dcn
参数来写入一句话,用bp的话记得先进行URL编码
,不然的话会只有个<?php
我是直接使用了hackbar
可以看到已经成功写入了,使用filename
来包含我们写入的session
,可以看到已经成功了
注意:这个session
用过一次后就会自动清除内容为默认值:username|N;
,所以每使用一次命令后,就要重新向session文件中写内容,再执行
直接使用find
命令查找一下吧
|
|
看到了在/app/
下有个./flag.php
的文件,直接使用cat命令去查看
|
|
成功的拿到本题的flag
可以看看这个文章CTF PHP文件包含–session
web7(文件上传)
是一道文件上传的题目,过滤了很多上传的后缀,但是他没有过滤php5
在apache
中,满足.+\.ph(p[3457]?|t|tml)$
都会被当作php文件解析
详细的可以参考这篇文章:CTF考点总结-文件上传
蚁剑连接上传的一句话
找了好久没找到flag,最后问了人才知道flag被人删了……唉
web8(PHP代码审计)
|
|
乍一看,传入time
参数在(5184000,7776000)
范围内不就好了。但是要sleep
这么长时间才给flag,那不就真到天荒地老了。
我们输入的GET
或者POST
参数是作为字符串保存的。is_numeric()
支持普通数字型字符串、科学记数法型字符串、部分支持十六进制0x型字符串。而强制类型转换int,却不能正确的转换十六进制型字符串、科学计数法型字符串(部分)。
所以我们只要输入以科学计数法形式或者16进制形式的字符串就可以绕过漫长的sleep
了。
|
|
web15(php反序列化)
打开只有一张图片,右键查看源代码看看有没有啥提示
看到有个dcnctf.php
的页面,打开看看
空的啥也没有,F12也啥也没有。。。我找不到题目了。。。把刚刚那张图片下载下来看看是不是隐写啥的吧
发现最底下有个ym.txt
,是不是源码???
终于找到题目了,是一道反序列化的题目
|
|
1、stripslashes()
函数的作用是删除反斜杠,代码的意思是如果添加了反斜杠,则将反斜杠\删除。
|
|
2、然后将pass
进行反序列化操作,并赋值给变量o。
|
|
3、如果对象o赋值成功,将对象o的secret变量设置为*,并判断对象o的secret变量和enter变量是否相等,===判断数值及属性,如果相等输出flag。
|
|
不知道secret
的值。所以我们想到了引用a=&b,即PHP对象深浅拷贝
构造POC(在初始化的时候将$this->enter=&$this->secret
进行引用):
|
|
放到本地的环境里面跑一下,得到序列化字符串
|
|
构造payload得到flag
大师
web9(php代码审计)
嗯……代码审计,对于我PHP弱鸡一枚……先上链接PHP函数漏洞集合
|
|
(1)d1要求不是数字又要比2019
大,这用到了PHP中字符串和数字型比较的时候先会用intval()
函数做转换 ;
(2)d2要求第一项是数组,并且总共的数组有五项 ,这里用到字符串弱等于0,所以这五个元素中要有0存在;
(3)a2要求数组中项的数值为dcnctf
最后的payload:
|
|
这边的话也可以使用php代码扔到在线工具里面生成
|
|
web14(文件上传)
看着这是一题文件上传的题目,上面有提供了一个控制的功能,可以来删除和重命名文件
经过测试发现都有对后缀名进行了限制,多后缀解析漏洞也不能用,.htaccess
也不能传,有点难搞…..
突然想起来了它题目提示使用的是Apache HTTPD
,上面不是还有个控制的功能没有用到嘛
后面是直接传heihei.txt
文件上去,使用文件的重命名的功能改成heihei.php.txt
,这个apache
他不解析txt,所以就可以使用蚁剑直接连接了
这边的话没有图嘛,是因为做题目的时候忘记截图了,后面去补截图的时候发现题目又被人破坏了……
唉,难得有个平台可以给大家一起来学习,为什么一定要去破坏它呢?真是搞不懂
大师PLUS
web10(CMS漏洞)
真实的环境,嗯~ o( ̄▽ ̄)o 让我们看看这是一个啥CMS
,然后直接……嘿嘿,都懂
直接滑到最底下
MetInfo 5.0.4
ε=ε=ε=(~ ̄▽ ̄)~ 猜测flag一般是放在数据库中的,所以嘛
注入点在/about/show.php?lang=en&id=48
这边
这边我使用sqlmap
获取到字段的时候不知道为什么dump
不出来数据,不知道是不是编码的问题,尝试了几种方法也都不行
所以我这边是使用了github
上一个开源的sql注入工具成功的拿到了flag
做完了这15道的web题,有些题目之前没见过,也有些知识点也差点忘了,也就当作去复习了一遍知识点,这次收获挺大的,加油!!!