freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

打造刀郎安全PHP系统
2018-07-23 10:00:07

*本文原创作者:刀郎,本文属FreeBuf原创奖励计划,未经许可禁止转载

有一段时间没有露面的,现在出来和各位打个招呼,今天给大家带来话题是打造安全php系统,web安全防不胜防,那么我们怎么尽可能的做到安全啦?

Web方面注入,xss防不胜防,但是最终的结果是上传php木马到web服务器中,进行下载网页源代码,或者dump数据库。

注入和xss是网页代码的问题,不同的程序员水平和经验不一样,开发出来的安全性肯定不一样,那么我想到的方法是在上传木马上做文章。

扯了这么多,先给大家看一段代码

<?daolang

echo "hello world";

?>

3.PNG

这段代码是不是写错了?正常情况下应该不能跑的,但是在我刀郎的服务器中是正常运行的,恰恰正常代码不能在我服务器中跑。

<?

echo "hello world";

?>

2.PNG4.PNG

那么我们怎么打造这样的刀郎安全php服务器啦?

第一步查找php关键标识符

这里我用Source Insight 4.0,搜索整个php源代码查找<?,排查后发现在Zend/zend_language_scanner.l这个文件中,

1.PNG

第二步 修改标识符

下面是我已经修改后的 

<INITIAL>"<?daolang"([ \t]|{NEWLINE}) {

HANDLE_NEWLINE(yytext[yyleng-1]);

BEGIN(ST_IN_SCRIPTING);

RETURN_TOKEN(T_OPEN_TAG);

}

<INITIAL>"<?dl" {

if (CG(short_tags)) {

BEGIN(ST_IN_SCRIPTING);

RETURN_TOKEN(T_OPEN_TAG);

} else {

goto inline_char_handler;

}

}

5.PNG

保存。

第三步 生成C文件

我们需要重新生成zend_language_scanner.c

re2c --no-generation-date --case-inverted -cbdF -o zend_language_scanner.c  zend_language_scanner.l

第四步 编译源代码

4.1 安装需求库

 apt-get install gcc  make automake autoconf libtool bison flex libxml2-dev apache2-dev re2c

4.2 开始编译代码

./configure --with-apxs2=/usr/bin/apxs

make 

4.3配置php环境

4.3.1 安装apache2

apt-get install apache2

service apache2 start4.3.2 修改配置文件

6.PNG4.3.3 重启apache2

service apache2 start

4.4 感慨

现在国家在大力推广ipv6,未来面对的机遇和挑战更多,大家准备好了吗?哎实在编不下去了,最后一句话,大家想我吗?

*本文原创作者:刀郎,本文属FreeBuf原创奖励计划,未经许可禁止转载

# php # 安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者