- 前言
- 7.simple_php
- 9.xff和referer
- 10.webshell
- 11.command_execution
- 12.simple_js
- 总结
前言
记录一下学习过程
提示:以下是本篇文章正文内容,下面案例可供参考
7.simple_php分析php的代码,发现以get方式获取数据。
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
?>
- 第一个$flag1:php是弱类型语言,在用==比较的时候,不同类型的值比较会被转化成空进行比较,所以只需要输入非数值型的字符即可显示第一个$flag。使用===就会严格比较类型。
- 第二个flag2:is_numeric():指定的变量是数字和数字字符串则返回 TRUE;所以输入一个比1234大的字符串
http://111.200.241.244:57651/?a=asdf&b=12345112a
xff:X-Forwarded-For: HTTP 扩展头部,主要作用是查看源ip以及代理ip
格式:X-Forwarded-For: client, proxy1, proxy2
referer:主要是网页的来源地址,服务器使用referer确认访问来源,如果referer内容不符合要求,服务器可以拦截或者重定向请求。
格式: Referer=http://www.google.com
使用bp抓包 添加进ip为123.123.123.123 和referer来源为google
返回出flag
cyberpeace{49adab36ff04a945a1578da05c09aba1}
点开进去上面显示一句话木马
一句话木马:通过post上传的的参数shell以php语法进行执行。
1.直接上菜刀
既然有一句话木马最方便的方法自然是直接上菜刀
2.手动测试连接
首先通过返回包,查看服务器的操作系统为ubuntu
以post参数提交命令ls 查看一下当前目录,发现恰好有flag.txt文件,system()函数调用/bin/sh来执行参数指定的命令
直接查看 flag文件获得flag
或者直接find一下 找到文件
shell=system('find / -name "flag.*" ');
11.command_execution
先简单的使用一下ping命令 发现能正常使用,而且没有waf说明没有参数的过滤,任何玩意都能写到框框里面去。
直接拼接语句查找flag
查看flag
127.0.0.1&&cat home/flag.txt12.simple_js
怎么输入发现都是一个结果,FAUX PASSWORD HAHA。查看网页的代码,发现输入进去的pass_enc根本就没被用到,自始至终都是pass在用。
JS
中间的这段代码 看似花里胡哨 实际上就是变成ascll码后拼接输出
var tab2 = pass.split(',');var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length;
k = j + (l) + (n=0);
n = tab2.length;
for(i = (o=0); i < (k = j = n); i++ ){o = tab[i-l];p += String.fromCharCode((o = tab2[i]));
if(i == 5)break;}
for(i = (o=0); i < (k = j = n); i++ ){
o = tab[i-l];
if(i > 5 && i < k-1)
p += String.fromCharCode((o = tab2[i]));
直接用python输出两个数组的值
a="x35x35x2cx35x36x2cx35x34x2cx37x39x2cx31x31x35x2cx36x39x2cx31x31x34x2cx31x31x36x2cx31x30x37x2cx34x39x2cx35x30"
b=a.split(',')
c="70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65" #pass数组
c=c.split(',')
# 输出a数组的ascll
for i in b:
print(chr(int(i)),end='')
print('')
# 输出pass数组的ascll
for i in c:
print(chr(int(i)),end='')
输出
786OsErtk12 FAUX PASSWORD HAHA
所以flag为 786OsErtk12
总结主要涉及的知识点:
php的语言比较特点
xff和referer的定义和UA头的参数
一句话木马的原理
命令的直接拼接
js代码的简单理解



