打开链接后就呈现出这样,那就先来分析一波

web——各种绕过(100)——Bugku_Zichel77的博客-CSDN博客这个人的分析非常清楚

urldecode是url解码

下面来看一下 isset() 的返回值:

1.若变量不存在则返回FALSE

2.若变量存在且其值为NULL,也返回FALSE

3.若变量存在且值不为NULL,则返回TURE

可以得到:

1.GET传参id 和uname,POST传参passwd

2.uname和passwd值不相等但是sha1值相等

3.id=’margin

要满足第2个条件,可以使用构造数组的方法,令unmae[]=1,passwd[]=其他数字就好,然后id=margin,又因为条件1,所以id和uname是通过url传输的,passwd单独post

shal有一个漏洞,数组的返回值为null所以都会相等

 就可以得出flag

1.PHP在处理哈希字符串时,通过!===来对哈希值进行比较,它把每一个以0e开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以0e开头的,那么PHP将会认为他们相同,都是0

适合运用在外面的if要求两个数不相等,而里面却要求相等。

2.函数md5的漏洞:首先md5接受数组都为0,比如输入get输入一个p,p[]=1这种返回值都为0

我们只要找出两个数再md5加密后都为0e开头的即可,常用的有以下几种:

QNKCDZO
0e830400451993494058024219903391
s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
加密以后都为0e开头然后通过oe开头漏洞也都为0

2.extract() 函数使用数组键名作为变量名,使用数组键值作为变量值,当变量中有同名的元素时,该函数默认将原有的值给覆盖掉。这就造成了变量覆盖

比如extrace($_POST),直接传入以POST的方式传入pass=1&thepassword_123=1,则下文中的pass\oasswird_123变量的值都被覆盖为1

3.strpos()函数,strpos()函数如果传入数组,便会返回NULL

4.

ereg()函数搜索由指定的字符串作为由模式指定的字符串,如果发现模式则返回true,否则返回false,搜索对于字母字符是区分大小写的,用于正则表达式匹配。

一、ereg()函数存在NULL截断漏洞,可以%00截断,遇到%00则默认为字符串的结束,所以可以绕过一些正则表达式的检查。
二、ereg()只能处理字符串的,遇到数组做参数返回NULL。
三、空字符串的类型是string,NULL的类型是NULL,false、true是boolean类型

例如输入:ergy($_GET['nctf'])===false

nctf=?nctf=123%00%23biubiubiu  则进行比较的时候到%00则会退出

5.sha1()函数不能处理数组

pgp各种弱类型绕过相关推荐

  1. CTF_Web:php弱类型绕过与md5碰撞

    0x00 前言 md5碰撞只是一种掌握php弱类型的方式,弱类型的内容有很多,数组.字符串比较等等,但不论以哪种方式考,涉及的知识点都是相通的,希望通过对基础知识的分享与大家一同学习进步. 0x01 ...

  2. 关于sql弱类型语言的绕过

    sql语言是弱类型语言,今天根据这个特性做了个小测试 在sql语句里"="是判断的意思,并不是赋值. 根据上图,**'1test'**这是一个字符窜,而他第一个字符是1,就类似于M ...

  3. CTF中的md5弱类型(ALL_IN_ONE)

    CTF中的md5 文章目录 第一种情况,md5弱类型比较 第二种情况,md5强类型比较 第三种情况,md5碰撞 第四种情况,sql语句 md5值暴破 md4 md2 sha1 其他特殊的hash值(m ...

  4. PHP弱类型及一些绕过姿势

    前言: 做web题时经常会遇到各种php弱类型和一些函数的绕过方法,由于知识比较零碎,就总结一下我所遇到的,也方便自己以后观看. 0x00:弱类型介绍: 弱类型是可以随意转换变量的类型,也就是说php ...

  5. long转string类型_从php内核角度分析php弱类型

    前言 在CTF比赛中PHP弱类型的特性常常被用上,但我们往往知其然不知其所以然,究竟为什么PHP是弱类型呢?很少人深究.在这次源码分析的过程中我收获很大,第一次学会了如何深入理解一个问题,虽然花费了我 ...

  6. PHP是弱类型还是强类型,php弱类型比较(松散比较) | CN-SEC 中文网

    总结一下关于php(拍h片)弱类型相关知识的梳理. 前言 php有八种类型 标量类型:整数型integer,浮点型float,字符串类型string,布尔类型boolen 复合类型:对象 object ...

  7. CTF——Web——php 弱类型总结

    php 弱类型总结 特别注意: md5(),    json_encode(),   array_search(),  strcmp(),  switch()  ,in_array()  这几个容易涉 ...

  8. php弱类型漏洞,php代码审计之弱类型引发的灾难

    天融信阿尔法实验室 李喆 有人说php是世界上最好的语言,这可能是对开发人员来说,确实有这方面的特点,因为它开发起来不像其他语言那样麻烦,就比如:弱类型,它不需要像java等语言那样明确定义数据类型. ...

  9. PHP代码审计弱类型,[代码审计]php弱类型总结

    0x01 前言 php是世界上最好的语言,所以php自身的安全问题也是web安全的一个方面.由于其自身弱类型语言的特性以及内置函数对于传入参数的松散处理,所以会带来很多的问题,这里将进行简要介绍. 弱 ...

  10. c语言实现md5比java难_浅谈md5弱类型比较和强碰撞

    前言 在CTF中,md5的题目太常见了,虽然有很多这方面的文章,但相对来说比较零散,这里主要将自己学习和比赛时遇到的md5弱类型和强碰撞的题目从浅到深地梳理一下. 本文涉及知识点实操练习:浅谈md5弱 ...

最新文章

  1. php五只猴子分椰子_PHP实现的猴王算法(猴子选大王)示例
  2. mysql主备数据库配置_MySQL双主互备配置
  3. SpringSecurity案例之认证服务搭建
  4. centos删除php_Linux CentOS完全卸载PHP
  5. Vue项目中Table设置 render 函数
  6. Android 长度单位
  7. 485通信自动收发数据实现
  8. JQuery语法 JQuery对象与原生对象互转 文档就绪函数与window.onload的区别
  9. 和菜鸟一起学产品之产品经理的三大文档
  10. 最完整UI库Kendo UI发布R3 2018|附下载
  11. python opencv 创建滑动条调整值
  12. python 判断是字母的多种方法
  13. JDY-18+STM32的蓝牙APP控制 PWM灯光
  14. 咔嚓冲印: 用IPHONE冲印LOMO卡片和明信片
  15. c语言学习记录|输入三角形三边的长度,计算三角形周长和面积。
  16. redis-manger集群管理工具
  17. 微信小程序通过微信群发消息(订阅消息)
  18. 快手小店后台数据爬取(selenium+openpyxl)
  19. 论文大致思路(不断更新)
  20. 解决pdd接口老大难的问题,稳定可靠的新接口

热门文章

  1. 博士后到底值不值得做?!
  2. XTDRONE:ego_planner三维运动规划
  3. 基于Python的指数基金量化投资——指数基金估值榜
  4. 计算机重装后如何添加打印机,系统重装后,电脑无法连接打印机怎么办?
  5. 时间序列相似性度量-DTW
  6. sql分组排序语句顺序
  7. 简单封装retrofit2+rxjava2
  8. win11家庭版 安卓虚拟机
  9. python做估值模型_理解债券估值中的摊销/摊余成本,利用EXCEL+Python估值建模
  10. 锯齿波FMCW测距、测速的原理