CTF web 201808

实验吧--天网管理系统

考察点:md5特性、反序列化漏洞,php布尔弱类型

查看源码,发现

表示username的md5值==0,这里利用了md5的一个漏洞,凡是0e开头的字符串会被解释为0,百度一下即可

s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020

得到新链接/user.php?fame=hjkleffifer

这是一个反序列化问题,根据提示,可能跟布尔值有关,

bool的true和任意字符串弱类型相等 

所以构造的user(bool)和password(bool)的值为true即可。

1 <?php
2 $payload = array(‘user‘=>true,‘pass‘ => true);
3 echo serialize($payload);
4 ?>

得到结果:

a:2:{s:4:"user";b:1;s:4:"pass";b:1;}

将其作为password,即可得到flag

 实验吧--Once More

发现代码:

<?php
if (isset ($_GET[‘password‘])) {
    if (ereg ("^[a-zA-Z0-9]+$", $_GET[‘password‘]) === FALSE)
    {
        echo ‘<p>You password must be alphanumeric</p>‘;
    }
    else if (strlen($_GET[‘password‘]) < 8 && $_GET[‘password‘] > 9999999)
    {
        if (strpos ($_GET[‘password‘], ‘*-*‘) !== FALSE)
        {
            die(‘Flag: ‘ . $flag);
        }
        else
        {
            echo(‘<p>*-* have not been found</p>‘);
        }
    }
    else
    {
        echo ‘<p>Invalid password</p>‘;
    }
}
?>

查看代码发现,首先ereg判断password的值是不是数字或字母,继续strlen()限制了长度小于8并且大小必须大于9999999,继续strpos()对password进行匹配,必须含有*-*,最终才输出flag

ereg函数存在NULL截断漏洞,导致了正则过滤被绕过,所以可以使用%00截断正则匹配。对于另一个难题可以使用科学计数法表示,计算器或电脑表达10的的幂是一般是e,也就是1.99714e13=19971400000000,所以构造1e8即100000000 > 9999999,再加上*-*。于是乎构造password=1e8%00*-*,成功得到答案

方法二:直接将url改为http://ctf5.shiyanbar.com/web/more.php?password[]

因为在这里如果 $_GET[‘password’]为数组,则返回值为NULL ,而在严格比较下,null不等于false

附:php类型比较表  http://php.net/manual/zh/types.comparisons.php

  php函数漏洞集合  https://blog.csdn.net/qq_35078631/article/details/75200157

原文地址:https://www.cnblogs.com/iamgroot/p/9519219.html

时间: 2024-10-15 14:37:44

CTF web 201808的相关文章

31C3 CTF web关writeup

0x00 背景 31c3 CTF 还是很人性化的,比赛结束了之后还可以玩.看题解做出了当时不会做的题目,写了一个writeup. 英文的题解可以看这:https://github.com/ctfs/write-ups/tree/master/31c3-ctf-2014/web 0x01 pCRAPp 1 PHP is nasty crappy sometimes, just pwn it http://188.40.18.69/ 这题需要好多php技巧组合起来.过关需要这样提交. 1 http:

CTF—WEB—sql注入之宽字节注入

 宽字节注入 宽字节注入是利用mysql的一个特性,mysql在使用GBK编码(GBK就是常说的宽字节之一,实际上只有两字节)的时候,会认为两个字符是一个汉字(前一个ascii码要大于128,才到汉字的范围),而当我们输入有单引号时会自动加入\进行转义而变为\’(在PHP配置文件中magic_quotes_gpc=On的情况下或者使用addslashes函数,icov函数,mysql_real_escape_string函数.mysql_escape_string函数等,提交的参数中如果带有单引

【CTF web】ISCC 2016 web 2题记录

偶然看到的比赛,我等渣渣跟风做两题,剩下的题目工作太忙没有时间继续做. 第1题 sql注入: 题目知识 考察sql注入知识,题目地址:http://101.200.145.44/web1//index.php 做题过程 第一步:注入Playload user=flag&pass=' or updatexml(1,concat(0x7e,(select pw from user limit 1,1 )),0)# ' 第二步:注入效果 Masel's secure site 重置数据库 Error:

Bugku CTF web题

web2 查看网页源码,发现flag 文件上传测试 (初用burpsuite) 如果纯粹上传自己修改的后缀为php的文件,会得到提示不是图片文件,那么我们上传一张png格式图片,再用burpsuite修改文件后缀就行了,获得flag. 计算器 我们发现只能输入一个数字,那么必定源码对输入进行限制了,因此我们用f12查看网页源码 果不其然是限制了长度,将1改为3,输入正确结果,验证获取flag web3 打开链接,弹窗关闭不了,二话不说看源码. 发现最后有段这个编码,典型html编码,用解码器在线

两道CTF Web的题目

1.easyphp 1.1.题目描述 题目首先是一张不存在的图片 查看源码发现只有一句话 <img src="show.php?img=aGludC5qcGc=" width="100%"/> 点开源码中图片的链接,跳转到下面的页面 img 后面的内容很像是 base64 编码,经过解码验证,确实是 base64 编码,还原后是 hint.jpg . 尝试把 img 后面的参数用 flag.jpg.flag.php.flag 的base64编码代替后访问

php+nginx

ctf题目制作手册 一.制作题目 制作ctf题目前置条件:CentOS7,需要安装有docker服务 制作test1压缩包下的题目1: 1.明确题目要求,题目要求如下: 2.docker hub寻找合适的镜像: (注意:寻找镜像时,不找无run启动命令的镜像) 无特殊要求,开始制作镜像. 首先根据题目要求从docker hub上寻找对应的镜像,该题目需要php镜像,需要php运行服务器,一般而言使用apache. 如图所示镜像是根据寻找找到的可用镜像 3.docker服务器下载镜像 如图所示,通

CTF中常见Web源码泄露总结

.hg源码泄漏 漏洞成因: hg init的时候会生成.hg e.g.http://www.am0s.com/.hg/ 漏洞利用: 工具:dvcs-ripper rip-hg.pl -v -u http://www.am0s.com/.hg/ .git源码泄漏 漏洞成因: 在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等.在发布代码的时候,把.git这个目录没有删除,直接发布了.使用这个文件,可以用来恢复源代码. e.g. http

CTF训练营之web篇

不难不易的js加密 解题地址:here 过程:打开源码页面,开始分析js代码 可以看到好多>.<    而且乱七八糟的感觉(好吧,大神就忽略这句吧) 首先将网站另存为到本地,其实网上有关于这方面解码的方法,这里我使用的document.write(blablablabla.....) ,改完之后在本地打开文件,就不贴图了,将页面上的代码复制下来替换原来的js代码,调整一下格式,得到如图结果: <script type="text/javascript"> var

1008.CTF 题目之 WEB Writeup 通关大全 – 2

Web题目系列2 登陆一下好吗?? 题目链接 http://shiyanbar.com/ctf/1942 题目描述 不要怀疑,我已经过滤了一切,还再逼你注入,哈哈哈哈哈! flag格式:ctf{xxxx} 解题思路 一个万能密码问题,多试试就可以了. username: ''=' password: ''=' who are you? 题目链接 http://shiyanbar.com/ctf/1941 题目描述 我要把攻击我的人都记录db中去! 解题思路 看到题目就想到修改x-forwarde