ctf-题库知识
这是一篇有关ctf中做的一些题库
[SWPUCTF 2021 新生赛]gift_F12 | NSSCTF
题目要求找出相应的flag,使用chrome打开网址,由于是源码泄露,所以猜测应该是在html中,这时,打开网页,然后使用ctrl+u打开源码审计,搜索flag,发现flag在JavaScript中,得到flag,这道题就over了。

[SWPUCTF 2021 新生赛]jicao | NSSCTF
网站打开之后,代码如下
1 |
|
这是一段php代码,
详细解释参考[SWPUCTF 2021 新生赛]jicao-CSDN博客的解题思路,但是在这个过程中,需要注意,第一,需要一款插件,被称之为HackBar的插件,插件地址为0140454/hackbar: A browser extension for Penetration Testing,可以直接下载之后使用chrome打开,该插件主要是通过F12打开,当一切参数按照网站要求填写OK之后,可以点击execute实现执行。
[SWPUCTF 2021 新生赛]easy_md5 | NSSCTF
PHP弱比较绕过,PHP比较分为强比较和弱比较(php比较绕过(强比较“===”/弱比较“==“)_php强等于绕过-CSDN博客)
弱比较
PHP的字符串和数字比较时,会将字符串先转化成数字类型在进行比较。字符串以数字开头,则以前部数字为转化结果、开头不是数字的,则为null或者是0
1 | '12'==12 //true |
布尔值和任何字符串都是相等的,除了0.
1 | 'way'==true //true |
Hash值和字符串比较
因为当hash开头为0e后全为数字的话,进行比较时就会将其当做科学计数法来计算,用计算出的结果来进行比较
1 | md5($str1)=0e420233178946742799316739797882 |
弱比较绕过
==绕过
两个等号是弱类型比较,他会将两边自动转换为同一种类型后再进行比较。所以他比较的就只是值 ,不比较类型。
1 | 12.0==12 true 12.0==12 真 |
switch绕过
switch()函数的参数和弱比较类似,会将参数进行转换,转换成int型值。
1 |
|
- intval()函数
intval()函数是获取变量的整数值,但是intval()函数有个漏洞就是他也会自动获取数字,从数字开头到出现字母后停止。有是也会利用这个来进行绕过;另外intval() 不能用于 object,否则会产生 E_NOTICE 错误并返回 1。
1 | $num=2e4 |
第一个判断取到的值为2,第二个判断会先计算加法,为20001,即可成功绕过。
===强比较
MD5强碰撞是一种安全漏洞利用技术,它涉及到在MD5哈希函数中找到两个不同的输入值,这两个值产生相同的哈希输出。这种情况在理论上不应该发生,因为MD5设计为单向哈希函数,意味着它应该为每个唯一的输入生成一个唯一的输出。然而,由于MD5的弱点,强碰撞成为可能。
目前已知的强比较字符串有
[安洵杯 2019]easy_web - Sentry_fei - 博客园(这个题还挺难的!!!)