作为一个CTF“菜狗“”,我最近对Web_php代码审计进行了系统的学习,为以后的CTF比赛打下基础。下面来看看我的学习笔记吧!
前言
PHP(即: Hypertext Preprocessor)“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法,并根据它们的长项持续改进提升自己,例如java的面向对象编程,该语言当初创建的主要目标是让开发人员快速编写出优质的web网站。 PHP同时支持面向对象和面向过程的开发,使用上非常灵活。
友情提示:方法很多,不止一种!
一、解题思路
拿到题目第一眼认为是Bace64加密,就试了试,发现无果。
接着完整个题目;发现存在Rot13和Base64两种加密 (考点一)
二、解题过程
1.新手(不会代码审计)
首先:对 $miwen进行Rot13解密:
其次,对PHP函数进行搜索;strrev() 函数反转字符串
;
期间可能会出现:
原因如下所述:
最后因为php中 $0_++ 进行加一,所以减一后对字符串进行 Base64解密即可
2.老手(代码能力强)
如下图所示例:
编写php语言,进行验证
<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
$m=base64_decode(strrev(str_rot13($miwen)));
for($i=0;$i<strlen($m);$i++){
$one=substr($m,$i,1);
$res=chr(ord($one)-1);
$flag=$flag.$res;
}
echo strrev($flag);
?>
就可以直接得到答案。
FLAG:flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}
总结
今天的分享就到这里了,希望大家在大学四年的CTF时光中取得的好成绩。再次感谢大家的访问!我是面包and牛奶,我们下期再见(可能会鸽很久很久)!鹅鹅鹅!