zyNo.17(Web题型总结3)
弱类型问题(php)
知识点
1.弱类型:
===在进行比较的时候,会先判断两种字符串的类型是否相等,再比较(严格)
== (弱相等)在进行比较的时候,会先将字符串类型转化成相同,再比较(eg:1=ture),如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值并且
比较按照数值来进行
2.弱类型类型转换规则
类型转换规则:从第一个不是数字的后面丢弃
123admin = 123
123a123123123123=123
admin=0
<? php
var_dump("admin" == 0); //true
var_dump("1admin" == 1); //true
var_dump("admin1" == 1) //false
var_dump("admin1" == 0) //true
var_dump("0e123456" == "0e4456789"); //true 两个字符串作比较,e代表科学计数法0e代表0*10的多少次方都是0,因此相等
3.当一个字符串被当作一个数值来取值,其结果和类型如下:如果该字符串没有包含'.','e','E'并且其数值值在整形的范围之内
该字符串被当作int来取值,其他所有情况下都被作为float来取值,该字符串的开始部分决定了它的值,如果该字符串以合法的数值开
始,则使用该数值,否则其值为0。
<? php
$test=1 + "10.5"; // $test=11.5(float)
$test=1+"-1.3e3"; //$test =- 1299(float)
$test=1+"bob-1.3e3";//$test=1(int)
$test=1+"2admin";//$test=3(int)
$test=1+"admin2";//$test=1(int)
?>
题目
weak1.php
解题思路
1.代码解读,post传参,message是json形式的,进行json_decode(对JSON格式的字符串进行编码)==弱相等
2.使用haackbar
传递message={‘key’:‘admin’}显示错误admin还可以为数字0数组【】对象{},所以可以让message的key属性为一个数字,key是一个字符串,大胆猜测不是以数字开头的所以转字符串为0,所以输入message={‘key’:0}就拿到了flag
进阶题目weak2.php
输入message={‘key’:0}显示错误,说明key很可能以数字开头,爆破一下用bp得到123可以得到flag
参考资料javaScript——json字符串详解-CSDN博客文章浏览阅读7.4k次,点赞5次,收藏23次。JSON 字符串(JSON String)是一种特定格式的文本字符串,用于表示数据。JSON 是 JavaScript Object Notation 的缩写,它是一种轻量级的数据交换格式,通常用于将数据从一个应用程序传输到另一个应用程序,或将数据存储在文件或数据库中。_json字符串https://blog.csdn.net/Cuichenyang158/article/details/132778609?fromshare=blogdetail&sharetype=blogdetail&sharerId=132778609&sharerefer=PC&sharesource=2401_88743143&sharefrom=from_linkhttps://blog.csdn.net/Cuichenyang158/article/details/132778609?fromshare=blogdetail&sharetype=blogdetail&sharerId=132778609&sharerefer=PC&sharesource=2401_88743143&sharefrom=from_linkhttps://blog.csdn.net/Cuichenyang158/article/details/132778609?fromshare=blogdetail&sharetype=blogdetail&sharerId=132778609&sharerefer=PC&sharesource=2401_88743143&sharefrom=from_linknullhttps://blog.csdn.net/wangyuxiang946/article/details/131338818?fromshare=blogdetail&sharetype=blogdetail&sharerId=131338818&sharerefer=PC&sharesource=2401_88743143&sharefrom=from_link
细说JavaScript对象(JavaScript对象详解)_js 撖寡情-CSDN博客文章浏览阅读1.1k次,点赞13次,收藏20次。对象除了是一种数据结构它在js中还有另外一个功能,就是编程设计的一种模式,就是用对象的数据结构实现了js语言设计,例如window是一个对象,alert作为window对象的一个属性存在,其实window对象包含js中的所有方法,因为window对象是浏览器的一个全局对象,js所有开发的编码都是在这个全局对象下完成的,或者说是挂载在这个window对象下的。var Person1 = new Person("知数SEO","女",8);_js 撖寡情https://blog.csdn.net/weixin_42019349/article/details/135598826?fromshare=blogdetail&sharetype=blogdetail&sharerId=135598826&sharerefer=PC&sharesource=2401_88743143&sharefrom=from_linkjson_decode函数详解_json.decode-CSDN博客文章浏览阅读2.4k次。json_decode接受一个JSON格式的字符串并且把它转换为PHP变量 ,当该参数$assoc为TRUE时,将返回array,否则返回object。json_decode是php5.2.0之后新增的一个PHP内置函数,其作用是对JSON格式的字符串进行编码.那么这个函数该如何使用呢?在上面代码的前提下访问对象类型$json_Class的a的值。访问数组类型$json_Array的a的值。其中a为键,php为a的键值。_json.decodehttps://blog.csdn.net/withkai44/article/details/131345254?fromshare=blogdetail&sharetype=blogdetail&sharerId=131345254&sharerefer=PC&sharesource=2401_88743143&sharefrom=from_link
知识点盲词细剖
1.NULL就是系统定义特殊的0,把你初始化的指针指向它,可以防止“野指针”的恶果 参考资料C语言中的"NULL"到底是什么?又不是什么?有什么用?怎么用?-CSDN博客
2.野指针就是指针指向的位置是不可知的(随机的,不正确的,没有明确限制的)
举个例子:你想去朋友家(访问内存中的数据),但你拿的地址(野指针)是错的,可能是个还没建好的房子的地址,也可能是个已经拆掉的房子的地址,这时候你就找不到朋友家了,还可能会惹出麻烦。参考资料C:野指针介绍(定义、危害、规避)以及野指针与空指针的区分-CSDN博客
3.arr数组名
- 数组名作为指针
- 在大多数情况下,数组名代表数组首元素的地址。例如,在
int arr
中,arr
就是arr
的地址。
- 在大多数情况下,数组名代表数组首元素的地址。例如,在
- 特殊情况
- 当使用
&arr
时,它表示整个数组的地址,而不是首元素的地址。这种情况下,&arr
的类型是int (*)
,即指向包含10个整数的数组的指针。 - 当使用
sizeof(arr)
时,它返回整个数组的大小,以字节为单位。这与数组名的常规用法不同,因为此时数组名不表示首元素的地址,而是整个数组。
- 当使用
- 函数参数传递
- 当数组作为函数参数传递时,数组名会自动退化为指向数组首元素的指针。这意味着在函数内部,数组名的行为就像一个指针,例如
int test(int a[])
实际上等同于int test(int *a)
。
- 当数组作为函数参数传递时,数组名会自动退化为指向数组首元素的指针。这意味着在函数内部,数组名的行为就像一个指针,例如
- 指针运算
- 对数组名进行指针运算,如
arr + 1
,会得到下一个元素的地址。而对&arr
进行指针运算,如&arr + 1
,会得到整个数组之后的位置。
- 对数组名进行指针运算,如
- 常量性质
- 数组名是一个常量指针,它的值不能被修改。这意味着你不能将数组名赋值给另一个地址。
4.弱类型
参考资料关于数组名(arr)的理解_arr数组-CSDN博客https://blog.csdn.net/m0_68071216/article/details/124462435?fromshare=blogdetail&sharetype=blogdetail&sharerId=124462435&sharerefer=PC&sharesource=2401_88743143&sharefrom=from_link
JavaScript数组(arr)常用方法详解-CSDN博客文章浏览阅读4.7k次。【代码】数组(arr)的常用方法。_arr.pushhttps://blog.csdn.net/Pikachu_999/article/details/130815369?fromshare=blogdetail&sharetype=blogdetail&sharerId=130815369&sharerefer=PC&sharesource=2401_88743143&sharefrom=from_link