豫商杯web的WP

题目一

1.variable --提示:something about php

http://ctf3.shiyanbar.com/web/variable/ 打开题目发现

源码可以下载下来,于是我们下载源码打开

<?php
include("secret.php");

?>
<html>
    <head>
        <title>The Ducks</title>
        <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
    </head>
    <body>
        <div class="container">
            <div class="jumbotron">
                <center>
                    <h1>The Ducks</h1>
                    <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { ?>
                        <?php
                        extract($_POST);
                        if ($pass == $thepassword_123) { ?>
                            <div class="alert alert-success">
                                <code><?php echo $theflag; ?></code>
                            </div>
                        <?php } ?>
                    <?php } ?>
                    <form action="." method="POST">
                        <div class="row">
                            <div class="col-md-6 col-md-offset-3">
                                <div class="row">
                                    <div class="col-md-9">
                                        <input type="password" class="form-control" name="pass" placeholder="Password" />
                                    </div>
                                    <div class="col-md-3">
                                        <input type="submit" class="btn btn-primary" value="Submit" />
                                    </div>
                                </div>
                            </div>
                        </div>
                    </form>
                </center>
            </div>
            <p>
                <center>
                    source at <a href="source.phps" target="_blank">/source.php</a>
                </center>
            </p>
        </div>
    </body>
</html>

定位到关键函数:extract() 这个函数通过百度我们可以知道:extract()函数从数组中将变量导入到当前的符号表。该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突。该函数返回成功导入到符号表中的变量数目。

于是看到关键代码if ($pass == $thepassword_123)这里可以用变量覆盖,重新post两个相同名字不同值的变量上去就可以覆盖 payload:http://ctf3.shiyanbar.com/web/variable/ 需要post的数据:pass=123&thepassword_123=123 flag{f1c6edcdc3f1c291eea3f266600439aa}

题目二

2.md5 --提示:md5算法的漏洞?

http://ctf3.shiyanbar.com/web/md5/ 打开看到源码

please input a
source code:
<?php
$md51 = md5("QNKCDZO");
$a = @$_GET["a"];
$md52 = @md5($a);
if(isset($a)){
if ($a != "QNKCDZO" && $md51 == $md52) {
    echo "flag{*****************}";
} else {
    echo "false!!!";
}}
else{echo "please input a";}
?>

直接想到php黑魔法:和QNKCDZOMD5相等的数是240610708 payload:http://ctf3.shiyanbar.com/web/md5/?a=240610708 flag{56f008ff31c89382e15915a8ad78f209}

题目三

3.无论你输入什么都是错的

http://ctf3.shiyanbar.com/web/wrong/ 打开输入任何东西都错误于是查看源代码,发现右键被禁用 用最古老的姿势:view-source:http://ctf3.shiyanbar.com/web/wrong/ 看到有个not.js

function stop(){
alert('其实破解我很简单,加油哦!');
return false;
}
document.oncontextmenu=stop;

function SymError()
{
  return true;
}
window.onerror = SymError;
{% endcodeblock %}
看出来这是禁用右键,于是我们修改为:
{% codeblock %}
function stop(){
return true;
}
document.oncontextmenu=stop;

function SymError()
{
  return true;
}
window.onerror = SymError;

发现可以右键审查元素,发现一个da.html直接访问,F12审查元素得到flag flag{a37b3a66-172f-434d-9105-aada3aed5bdc}

原文发布于微信公众号 - 安恒网络空间安全讲武堂(cyberslab)

原文发表时间:2018-10-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大闲人柴毛毛

Java异常体系中的秘密

相信大家每天都在使用Java异常机制,也相信大家对try-catch-finally执行流程烂熟于胸。本文将介绍Java异常机制的一些细节问题,这些问题虽然很...

36310
来自专栏何俊林

插件开发之360 DroidPlugin源码分析(二)Hook机制

前言:新插件的开发,可以说是为插件开发者带来了福音,虽然还很多坑要填补,对于这款牛逼的插件机制,一直想找个时间分析和总结下它的code,话不多说,直接入正题,本...

2196
来自专栏Java学习之路

02 Spring框架 简单配置和三种bean的创建方式

整理了一下之前学习Spring框架时候的一点笔记。如有错误欢迎指正,不喜勿喷。 上一节学习了如何搭建SpringIOC的环境,下一步我们就来讨论一下如何利...

3225
来自专栏一名合格java开发的自我修养

springMVC参数绑定

处理器形参中添加如下类型的参数处理注解适配器会默认识别并进行赋值。 1 HttpServletRequest 通过request对象获取请求信息 2 Htt...

1022
来自专栏吴柯的运维笔记

文本分析工具awk指令浅析

AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。awk经过改进生成的新的版本nawk,gawk,现在默认linu...

3299
来自专栏Fundebug

JavaScript异步编程史:回调函数到Promise到Async/Await

摘要: 异步编程时JavaScript以及Node.js的一大亮点,其中有什么心酸的黑历史呢?

1715
来自专栏喔家ArchiSelf

全栈必备 Java基础

那一年,从北邮毕业,同一年,在大洋的彼岸诞生了一门对软件业将产生重大影响的编程语言,它就是——Java。1998年的时候,开始学习Java1.2,并在Java ...

1084
来自专栏pydata

J2EE复习

JVM的两个内存:      运行时数据区 程序计数器 Java虚拟机栈 本地方法栈 Java堆 方法区...

802
来自专栏肖洒的博客

Java面试笔记

Java最重要的特点就平台独立,平台独立意味着可以在一个系统编译它然后在另一个系统使用它。

902
来自专栏IT技术精选文摘

跟着实例学习ZooKeeper的用法: 队列

使用Curator也可以简化Ephemeral Node (临时节点)的操作。Curator也提供ZK Recipe的分布式队列实现。 利用ZK的 PERSIS...

2667

扫码关注云+社区

领取腾讯云代金券