当前位置: 首页 > news >正文

[ctfshow web入门] web19

前置知识

php以$开头,并以下滑或字母开头的,被认为是变量。$_GET $_POST等可以认为它是关键字,这两个代表函数
在php中 ==是相等,其中可能伴随着类型转换,===是全等,必须类型和值完全相等

  • $user = $_GET['user'];
    从get中获取username的值
    例如 url/index.php?user=test1,若$user = $_GET['user'];,那么$user === "test1"
  • $user = $_POST['user'];
    从post中获取username的值
    例如 url/index.php?user=test2,若$user = $_POST['user'];,那么$user === "test2"

信息收集

抓包,看载荷,密码被加密了
载荷是post提交的内容
在这里插入图片描述
看到源代码

<body>
	    <form action="#" method="post" id="loginForm" >
            用户名:<input type="text" name="username"><br>
            密  码:<input type="password" name="pazzword" id="pazzword"><br>
            <button type="button" onclick="checkForm()">提交</button>
        </form>
</body>
<script type="text/javascript">
    function checkForm(){
        var key = "0000000372619038";
        var iv = "ilove36dverymuch";
        var pazzword = $("#pazzword").val();
        pazzword = encrypt(pazzword,key,iv);
        $("#pazzword").val(pazzword);
        $("#loginForm").submit();
        
    }
    function encrypt(data,key,iv) { //key,iv:16位的字符串
        var key1  = CryptoJS.enc.Latin1.parse(key);
        var iv1   = CryptoJS.enc.Latin1.parse(iv);
        return CryptoJS.AES.encrypt(data, key1,{
            iv : iv1,
            mode : CryptoJS.mode.CBC,
            padding : CryptoJS.pad.ZeroPadding
        }).toString();
    }

</script>
    <!--
    error_reporting(0);
    $flag="fakeflag"
    $u = $_POST['username'];
    $p = $_POST['pazzword'];
    if(isset($u) && isset($p)){
        if($u==='admin' && $p ==='a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04'){
            echo $flag;
        }
}
    -->
</html>

尝试登录

解法一:

我实在看不懂那一坨加密代码,那请看最后那段 用户名=amdin,密码=a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04
直接post账号和加密后的密码
可以使用google或火狐的hackbar插件,这非常方便。也可以使用burpsuite抓包用重放器重发,后续我会讲到burpsuite>
在这里插入图片描述
或者使用burpsuite抓post的包,也就是输入账号密码后点击提交那个包。随后发送到repeater,修改post内容,一般post内容在最下面,与请求头之间空一行
在这里插入图片描述

解法二:

我太NB了,居然看懂了那一坨加密代码。
在这里插入图片描述
AES加密,模式CBC,填充:ZeroPadding,密钥:0000000372619038,偏移:ilove36dverymuch
密文:(hex) a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04
解密网站:https://tool.lvtao.net/aes
在这里插入图片描述
拿到密码后输入admin i_want_a_36d_girl即可拿到flag
这里不拓展加密解密,这个内容非常庞大,我们大概知道是那种密码,怎么用就可以了,不需要学会它。

web    目录    web

相关文章:

  • 第四讲:类与对象(下)
  • 如何在React中集成 PDF.js?构建支持打印下载的PDF阅读器详解
  • mapbox基础,加载栅格图片到地图
  • QMT实盘代码案例教学:etf全球配置策略
  • 深入理解Java性能调优与JVM底层机制
  • 柯尼卡美能达CA-410-CA-VP427 P427
  • 从 “单打独斗” 到 “生态共赢” 跨境货源池的协同增长逻辑
  • 摄像头模块对焦方式的类型
  • Java基础 4.7
  • 基于Python的二手房数据挖掘与可视化深度分析
  • STM32单片机入门学习——第22节: [7-2] AD单通道AD多通道
  • AutoAgent: 香港大学开源的AI智能体框架
  • ARM-IIC
  • #简易线程池...实现原理
  • 从零开始的图论讲解(1)——图的概念,图的存储,图的遍历与图的拓扑排序
  • ubuntu 20.04 编译和运行A-LOAM
  • std::async 和 std::thread 的主要区别
  • 使用Vue、Nodejs以及websocket搭建一个简易聊天室
  • 项目难点亮点
  • 国密算法(SM2/SM3/SM4)与国际算法(AES/RSA/SHA-256)
  • 网站文字格式/南京今天重大新闻事件
  • web 网页设计/优化公司哪家好
  • dedecms做自适应网站/西安网络推广公司网络推广
  • 网站销售都怎么做的/企业查询系统官网
  • 企业网站推广方法和技巧/快速网络推广
  • 织梦做网站的详情/今日热点头条新闻