天涯论坛

 找回密码
 立即注册
搜索
查看: 79|回复: 1

php代码简单审计

[复制链接]

3038

主题

148

回帖

9911万

积分

论坛元老

Rank: 8Rank: 8

积分
99119143
发表于 2024-7-11 18:42:06 | 显示全部楼层 |阅读模式

本例子来自攻防世界题目:web2

题目写的很清楚了,便是咱们逆一个加密算法,将密文解密后便是flag。

咱们来看encode函数,strrev函数是将字符串次序颠倒过来(如将asdf改成fdsa),并返回一个指向这个颠倒的字符串的指针(这儿应该就寓意着返回的字符串不可修改)。而后for循环经历了strlen($_o)次,这儿看不出什么,那样就继续向下看,substr函数之前有介绍过,看代码发掘其经历了颠倒的字符字符串的每一个字符,并将其截取为$_c,而后每一个字符转化为ascii码后加一再转化回去(分别运用ord和chr函数,两个函数过于简单在这儿就不赘述了),最后再将所有字符拼接在一块(php中的.表率字符串的拼接,这儿便是把所有循环得到的字符又拼接回去)。

最后,他将处理好的字符串进行base64加密,再颠倒次序,再运用rot13加密,在这儿提一嘴rot13加密,其便是凯撒暗码移位数为13的状况然则体积掰开分别成环),因为有26个英文字母,因此两次相同rot13加密算法后就得到了原本的密文。

因此对算法的逆就很简单了

得到结果:flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}





上一篇:PHP代码审计
下一篇:PHP代码审计学习思路
回复

使用道具 举报

2984

主题

2万

回帖

9956万

积分

论坛元老

Rank: 8Rank: 8

积分
99569176
发表于 7 小时前 | 显示全部楼层
顶楼主,说得太好了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|天涯论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-22 12:57 , Processed in 0.109267 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.