sql注入学习,运维很闲,心理不舒服,给他找找或干,sql注入的简单手法

不管用什么语言编写的Web 应用,它们都用一个共同点,具有交互性并且多数是数据库驱动。在网络中,数据库驱动的Web 应用随处可见,由此而存在的SQL 注入是影响企业运营且最具破坏性的漏洞之一,这里我想问,我们真的了解SQL 注入吗?看完本篇文章希望能让你更加深刻的认识SQL 注入。
注入攻击原理及自己编写注入点

1.1、什么是SQL?

SQL 是一门ANSI 的标准计算机语言,用来访问和操作数据库系统。SQL 语句用于取回和更新数据库中的数据。SQL 可与数据库程
序协同工作,比如MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 以及其他数据库系统。

1.2、什么是SQL 注入?

看起来很复杂,其实很简单就能解释,SQL注入就是一种通过操作输入来修改后台SQL语句达到代码执行进行攻击目的的技术。

1.3、SQL 注入是怎么样产生的?

构造动态字符串是一种编程技术,它允许开发人员在运行过程中动态构造SQL 语句。开发人员可以使用动态SQL 来创建通用、灵活的应用。动态SQL 语句是在执行过程中构造的,它根据不同的条件产生不同的SQL 语句。当开发人员在运行过程中需要根据不同的查询标准来决定提取什么字段(如SELECT 语句),或者根据不同的条件来选择不同的查询表时,动态构造SQL 语句会非常有用。在PHP 中动态构造SQL 语句字符串:$query = "SELECT * FROM users WHEREusername = ".$_GET["ichunqiu"];
看上面代码我们可以控制输入参数ichunqiu,修改所要执行SQL 语句,达到攻击的目的。

1.4、编写注入点

为了照顾一下新人,这里先介绍一下涉及到的基础知识:SQL SELECT 语法 SELECT 列名称FROM 表名称符号* 取代列的名称是选取所有列WHERE 子句如需有条件地从表中选取数据,可将WHERE子句添加到SELECT 语句。语法SELECT 列名称FROM 表名称WHERE 列运算符值下面的运算符可在WHERE 子句中使用:了解了以上基础知识。

就让我们来自己编写注入点把。

第一步:

我们使用if 语句来先判断一下变量是否初始化

<?php
if(isset($_GET["ichunqiu"])){
}?
>
第二步:

在if 语句里面,我们连接数据库。在PHP 中,这个任务通过mysql_connect() 函数完成。
mysql_connect(servername,username,password);servername 可选。规定要连接的服务器。默认是"localhost:3306"。username 可选。规定登录所使用的用户名。默认值是拥有服务器进程的用户的名称。password 可选。规定登录所用的密码。默认是""。

第三步:

连接成功后,我们需要选择一个数据库。mysql_select_db(database,connection)database 必需。规定要选择的数据库。connection 可选。规定MySQL 连接。如果未指定,则使用上一个连接。
第四步:

选择完数据库,我们需要执行一条MySQL 查询。mysql_query(query,connection)query 必需。规定要发送的SQL 查询。注释:查询字符串不应以分号结束。connection 可选。规定SQL 连接标识符。如果未规定,则使用上一个打开的连接。
第五步:

执行完查询,我们再对结果进行处理mysql_fetch_array(data,array_type)data 可选。规定要使用的数据指针。该数据指针是mysql_query() 函数产生的结果。array_type可选。规定返回哪种结果。可能的值:MYSQL_ASSOC - 关联数组 ,MYSQL_NUM - 数字数组,MYSQL_BOTH - 默认。同时产生关联和数字,数组。


题外话:我们使用echo 将执行的SQL 语句输
出,方便我们查看后台执行了什么语句。

echo $querry

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值