那些年咱们学过的PHP黑魔法

访客5年前黑客资讯1029


这儿有必要得说一下==和===这俩货的重要性。==是比较运算,它不会去查看条件式的表达式的类型===是恒等,它会查看查表达式的值与类型是否持平NULL,0,”0″,array()运用==和false比较时,都是会回来true的,而运用===却不会这个根底知识点咱们应该都知道,所以提一下,下面就不会再拿出来说了。
数组
0x01许多时分,PHP数组都发挥了至关重要的效果,先来看下BOSTEN KEYPARTY中的一道题:
Default
if (isset($_GET['password'])) {
    if ($_GET['password'])
        print 'Your password can not be your name.';
    else if (sha1($_GET['password']))
        die('Flag: '.$flag);
    else
        print 'Invalid password';
}
这道题,咱们首先要保证name和password的值不能相同,其次,sha1加密之后的name和password的值又有必要完全相同 咱们知道,这时的a[0] = 1;所以name[] = 1和password[]= 2相比较,能够越过之一个判别,而假如运用sha1对一个数组进行加密,回来的将是NULL,NULL===NULL,这是建立的,所以结构两个数组,成功拿到flag
0x02再看bosten keyparty上的别的一道题:
Default
if (isset($_GET['password'], flag); 
    else 
        print 'Invalid password'; 

这儿,运用strcmp去比较password和flag,假如==0的话,就给出flag,可是strcmp比较,假如持平才会回来0,假如不持平的话,要么大于0,要么小于0,可是strcmp只会处理字符串参数,假如给个数组的话呢,就会回来NULL,而判别运用的是==,NULL==0是bool(true)的,所以,这道题仍是自始自终结构一个数组进去
0x03bosten keyparty上的又又一道题:
Default
if (isset ($_GET['password'])) { 
    if (ereg ("^[a-zA-Z0-9]+$_GET['password']) === FALSE) 
        echo 'You password must be alphanumeric'; 
    else if (strpos ($_GET['password'], '--') !== FALSE) 
        die('Flag: ' . $flag); 
    else 
        echo 'Invalid password'; 
}
这道题有两种做法,咱们仍是先说数组 ereg是处理字符串的,所以,依照原理,咱们将password结构一个arr[],传入之后,ereg是回来NULL的,===判别NULL和FALSE,是不持平的,所以能够进入第二个判别,而strpos处理数组,也是回来NULL,留意这儿的是!==,NULL!==FALSE,条件建立,拿到flag, 第二种做法,ereg读到%00的时分,就截止了,所以能够结构s%00–,也能拿到flag(这也算是一个黑魔法吗?哈哈)
数字的比较
0x01wechall上的一道题:
Default
function noother_says_correct(one = ord('1');
        $nine = ord('9');
        // Check all the input characters!
        for (i < strlen(i++)
        {
                // Disallow all the digits!
                number{digit >= digit <= $nine) )
                {
                        // Aha, digit not allowed!
                        return false;
                }
        }
       return $number == "3735929054";
}
这儿,它不让输入1到9的数字,可是后边却让比较一串数字,往常的办法必定就不能行事了,咱们都知道计算机中的进制转化,当然也是能够拿来比较的,0x最初则表明16进制,将这串数字转化成16进制之后发现,是deadc0de,在最初加上0x,代表这个是16进制的数字,然后再和十进制的3735929054比较,答案当然是相同的,回来true拿到flag
0x02看安全宝约宝妹的一道题:
Default
_SERVER['REQUEST_METHOD'])
{
    _POST['password'];
    if (0 >= preg_match('/^[[:graph:]]{12,}password))
    {
        echo 'Wrong Format';
        exit;
    }
    while (TRUE)
    {
        $reg = '/([[:punct:]]+|[[:digit:]]+|[[:upper:]]+|[[:lower:]]+)/';
        if (6 > preg_match_all(password, c = 0;
        $ps = array('punct', 'digit', 'upper', 'lower');
        foreach (pt)
        {

[1] [2]  黑客接单网

相关文章

继续聊聊梦里的那点事儿(下)-黑客接单平台

前情概要:梦里那点事系列文章(上) 0×05 弱口令是个好东西 忽然有这么多方针,一时间不知从哪下手,这个时分直觉告诉我,机关单位站点也许是突破口。 经历告诉我,此类网站的管理员往往缺少安全防护认识。...

根据Session的身份盗取

一、Session是什么 暗码与证书等认证手法,一般用于登录进程。用户登录之后,服务器通常会树立一个新的Session保存用户的状况和相关信息,用以盯梢用户的状况。每个Session对应一个标识符Se...

30秒攻破恣意密码保护的PC:深化了解5美元黑客神器PoisonTap

近来,闻名硬件黑客Samy Kamkar运用5美元设备打造的黑客东西PoisonTap,只需30秒,就可以攻破设置有恣意暗码的电脑体系,并完成长时间后门装置。PoisonTap不是暴力破解暗码,而是...

反击爬虫,前端工程师的脑洞能够有多大?

关于一张网页,咱们往往期望它是结构杰出,内容明晰的,这样搜索引擎才干精确地认知它。 而反过来,又有一些情形,咱们不期望内容能被容易获取,比方说电商网站的交易额,教育网站的标题等。由于这些内容,往往是...

如何逃逸Sysmon工具对DNS的监控-黑客接单平台

Sysmon是微软的一款轻量级的体系监控东西,最开端是由Sysinternals开发的,后来Sysinternals被微软收买,现在归于Sysinternals系列东西。它通过体系服务和驱动程序完成记...

运用Python检测并绕过Web应用程序防火墙

Web运用防火墙一般会被布置在Web客户端与Web服务器之间,以过滤来自服务器的歹意流量。而作为一名浸透测验人员,想要更好的打破方针体系,就有必要要了解方针体系的WAF规矩。现在,许多WAF都是根据签...