zoukankan      html  css  js  c++  java
  • [实验吧](web)因缺思厅的绕过 源码审计绕过

    0x00 直接看源码吧


    早上写了个注入fuzz的脚本,无聊回到实验吧的题目进行测试,发现了这道题

    地址:http://ctf5.shiyanbar.com/web/pcat/index.php

    分析如下:

    1. 看过滤,过滤了一些查询关键词,明注是不可能了,过滤括号,通常的盲注也是实现不了。

    2. 看要得到flag的条件,我们输入的密码和查询的密码要一致,而且查询结果只能有一条。

    0x01 正确姿势


    懒得写思路流程了,这里直接给出两种解题姿势,一种是盲注出密码,一种是使用with rollup 再加php弱类型。

    1. 先看盲注吧:

    payload: ' or pwd like 's%' limit 1#

    解释: 要使查询语句正常而且出结果,必须要有一个为真,这里是根据pwd进行判断的,若此时查询出来的结果中的pwd 的值是以s开头,则返回true ,若不是,则返回false。

    我是看人家writeup学到的,不得不承认,要是在知道列名的情况下,这种盲注手段简单方便很多,让我对 like的印象加深了许多。

    那剩下来就是脚本的事情了。

    2. with rollup

    这是我的一个知识盲区,出题人估计一开始的出发点也是这个吧,所以我也想记录一下。

    个人下面通俗解释一下 with rollup:   要配合 group by 一起使用,"group by username with rollup",简单说一下,就是使用with rollup 查询之后,查询结果集合里面会多一条NULL 记录,这一题利用NULL 和空字符相等,然后得到flag。测试如下图:


    所以这题的绕过的正确姿势是

    提交 username=' or 1 group by pwd with rollup limit 1 offset 2 # 

    0x01 小结


    偏向于盲注的我对like的印象分蹭蹭往上涨,不仅仅停留在绕过“=” 的过滤了

    with rollup 也是一种不错的姿势 除非是某些题目故意设定 要不然一般或许有更好的选择吧

  • 相关阅读:
    Jquery 跨域问题
    Linux下scp的用法
    JZ2440_V3_内核驱动程序_点亮一个LED灯
    MATLAB GUIDE 上位机串口通信开发 绘制图形
    关于在DSP工程内数组、strnpy函数、atoi函数的使用心得
    Visio中手绘图形的填充
    Ubuntu16.04NFS配置与ARM开发板互传文件_挂载和卸载
    树莓派压力测试工具STui + Stress的使用
    如何将代码优雅的插入到word中
    常用正则表达式
  • 原文地址:https://www.cnblogs.com/deen-/p/7136076.html
Copyright © 2011-2022 走看看