你知道php网站是如何被攻击的吗?

你知道php网站被攻击的方式吗?

文章来源:CSDN

链接:https://me.csdn.net/Fly_hps

作者:程鹏万里

文章来源:CSDN

链接:https://me.csdn.net/Fly_hps

作者:程鹏万里

文本

以下是16个网站遭到攻击的方式,需要进一步了解。

1.命令注入

2.评估注射

3.客户端脚本攻击(插入)

4.跨站点脚本(xss)

5.SQL注入攻击

6.跨站点请求伪造,CSRF)

7.会话劫持

8.会话固定攻击

9.HTTP响应分裂攻击

10.文件上传攻击

11.目录遍历

12.远程文件包含攻击

13.动态函数注入攻击

14.网址攻击

15.伪造的表单提交

16.超文本传输协议请求欺骗攻击(欺骗的超文本传输协议请求)

SQL注入攻击

展开全文

本文主要介绍针对PHP网站的SQL注入攻击。所谓的SQL注入攻击(SQL injection attack)是指一些程序员在编写代码时不判断用户输入数据的合法性,从而给应用程序带来潜在的安全风险。用户可以提交一个数据库查询代码,并根据程序返回的结果获得一些他想知道的数据。

Sql注入是攻击者以一种形式提交精心构造的sql语句并更改原始sql语句的攻击。如果网络程序不检查提交的数据,将导致SQL注入。

SQL注入攻击的一般步骤:

1.攻击者访问具有SQL注入漏洞的站点以找到注入点

2.攻击者构建一个注入语句,该语句与程序中的sql语句结合生成一个新的SQL语句

3.新的sql语句被提交给数据库执行

4.数据库执行了一个新的SQL语句,触发了一个SQL注入攻击

实例

[数据库/S2/]

CREATETABLE`postmessage `(

` id ` int(11)NonNullAutO _ increment,

`主题` varchar( 60) NOTNULLdefault ',

`名称` varchar( 40) NOTNULLdefault ',

`电子邮件` varchar( 25) NOTNULLdefault ',

`问题` medium text NORTNULL,

` post date ` datetime not NullDefault ' 0000-00-0000:00:00 ',

主键(` id ')

)engine = myisamdefault charset = GB 2312 comment = ' user ' s message ' AUTO _ INCREMENT = 69;

grantall privilegesonch3。*到“sectop”@ localhost,由“123456”标识;

//add.php插入消息

//list.php消息列表

//show.php显示消息

http://www.netsos.com.cn/show.php?身份证=71页可能有注射点。让我们测试一下

http://www.netsos.com.cn/show.php? id = 71,1=1

返回页面

一个对记录的查询,一个没有,让我们看看源代码

//show.php 12-15行

//执行mysql查询语句

$query = "从邮件后选择*其中id = "。$ _获取[“id”];

$result = mysql_query($query)

Ordie(“无法执行ySQL查询:“”。MySQL _ error);

传入参数id后,将与前一个字符串结合的sql语句放入数据库中执行查询

当提交1=1时,语句变为从邮件后选择,其中标识= 71,1 = 1。语句前后的值为真,之后和为真,返回查询的数据

提交且1=2时,该语句变为从邮件后选择,其中标识= 71,1 = 2。语句的前一个值为真,后一个值为假,后一个值为假。无法查询任何数据

在我们构造语句之后,普通的SQL查询形成了SQL注入攻击。通过这个注入点,我们可以获得更多的权限,比如通过union读取管理密码和数据库信息,或者通过mysql的load_file、introoutfile和其他函数进一步渗透。

预防措施

整数参数

使用整型函数将数据转换为整数

功能原型:

int intval(混合var,int base)

Var是一个要转换为整形的变量

基数,可选,是基数;默认值为10

浮点参数

使用浮点或双值函数分别转换单精度和双精度浮点参数

功能原型

内部浮动值(混合var)

Var是要转换的变量

int doubleval(混合var)

Var是要转换的变量

字符参数:[/s2/]

addslashes函数用于将单引号"'"转换为"'",双引号" ' "转换为" ' ",反斜杠""转换为"",空字符加反斜杠" "

功能原型

字符串加斜线(字符串)

字符串是要检查的字符串

然后我们可以修复刚刚出现的代码漏洞。

//执行mysql查询语句

$query = "从邮件后选择*其中id = "。intval($ _ GET[“id”]);

$result = mysql_query($query)

Ordie(“无法执行ySQL查询:“”。MySQL _ error);

如果是字符类型,首先判断magic_quotes_gpc是否可以打开,如果不能打开,使用加斜线来转义特殊字符

if(get_magic_quotes_gpc)

{

$ var = $ _获取[“var”];

}

其他

{

$ var = add slashes($ _ GET[“var”]);

}

再次测试,漏洞已被修补并返回搜狐查看更多信息

负责任的编辑:

留言板

|PowerBy Zblog, Theme: 涂涂研版 By www.tusay.net