博客 (30)

网站的“防跨站攻击”默认是开启的,对应网站根目录下存在 .user.ini 文件可阻止该网站程序读写网站目录外的文件或目录


通过 FTP 上传或通过 PHP 创建的文件(夹)的用户(组)都是 www:www,目录权限 755,文件权限 644


PHP 不需要“执行”权限,因为这个“执行”权限是针对 sh 的


因此 PHP 在该站任何位置具有写入权限


理想的权限控制是:pure-ftp 使用另外的用户(组),譬如 ftp:ftp


这样使用 www:www 的 PHP 就无法随意创建文件,只能在开放了“公共权限”中的“写入”权限的目录中创建。


查看系统用户组:cat /etc/group

查看系统用户:cut -d : -f 1 /etc/passwd


查看 pure-ftp 帮助:

/www/server/pure-ftpd/bin/pure-pw --help


修改 FTP 用户的所有者和组:

/www/server/pure-ftpd/bin/pure-pw usermod FTP用户名 -u 所有者 -g 组


重启 pure-ftp


上述命令经简单测试并没有更改 FTP 用户的所有者和组……



退而求其次的做法是通过 SSH 用 root 来上传网站程序代码,并开放上传目录的“写入”权限


还有重要的一点,在网站的配置文件中禁止这些有“写入”权限的目录中的 PHP 运行权限!(参:在 CentOS (Linux) 中设置目录写入权限,并禁止执行 php


xoyozo 7 年前
6,878

知其然,才能使其安——王震

 

常见的攻击手法

SQL 注入

文件上传

弱口令

Nday 攻击

XSS

社会工程学

等等……

 

被黑原因总结

不知道 不及时 不在意
不知道自用系统安全动态 不及时更新系统安全补丁 不在意个人信息安全
不知道常见黑客攻击手段 不及时修复漏洞 不在意用户数据安全
不知道该如何修复 不及时排查被黑系统 不在意各种安全软件提示、提醒
不知道今后该如何防御   不在意细节

 

那些年,醉人的“三字经”

网站渗透娱乐版 针对企业的实战版

进谷歌 找注入

没注入 就旁注

没旁注 用0day

没0day 猜目录

没目录 就嗅探

爆账户 找后台

传小马 放大马

拿权限 挂页面

放暗链 清数据

搞企业 先扫描

默认密 都知道

社工库 找一找

邮箱号 先列好

九头蛇 跑一跑

搞不定 放大招

发邮件 凭伪造

没邮箱 搞网站

二级域 皆可爆

老漏洞 没修好

新漏洞 刷一票

干研发 Git 找

原代码 全都要

CDN 可以跳

防火墙 可以撬

堡垒机 可以绕

云防护 可以秒

是企业 没有哪家搞不了

 

攻击手法统计

Nday攻击:45%

漏洞攻击:35%

其他攻击:15%

0day攻击:5%

 

一些箴言

80%的安全问题都是已知的安全问题,但是能抵御已知安全问题的网站只有20%

弱口令虽然看起来很弱,但是忽视弱口令只会让你的网站变得更弱

没有百分之百的安全,你所做的一切不是为了让自己无坚不摧,只是让自己不再弱不禁风

80%的系统安全问题都是可以通过升级补丁来解决,但是能做到这点的人只有20%

SQL注入存在十几年了,依然是主流攻击手段,可见安全比的不是谁更先进,而是谁更细心

不要得罪你的开发人员,这就跟你吃饭不要得罪服务员一样,你不知道他下一秒会不会在你的菜里吐口水

 

还有一句

永远不要觉得你安装的安全防护软件真的可以保护你的安全

 

服务器安全注意事项

不安装不必要的软件

排查所有系统弱口令

关闭不常用的端口

控制目录权限

不在服务器上下载、打开非官方提供软件

不在服务器上打开他人发来的网页链接

 

如何排查暗链?

利用查看网站的源代码来检查黑链

使用站长工具“网站死链检测”功能来检查黑链

用 FTP 查看网站文件的修改时间来检查黑链

接入 webscan.360.cn 检测

 

后门排查

Windows 下,D 盾、安全狗、主机卫士

Linux 下,Seay 一句话扫描脚本、主机卫士 Linux 版

用 FTP 查看网站文件的修改时间来排查恶意后门

接入 webscan.360.cn 等在线检测

 

安全类书籍推荐

《Web 安全深度剖析》——张炳帅 著

《白帽子讲 Web 安全》——吴瀚清 著

《Web 前端黑客技术揭秘》——钟晨呜(余弦)著

《黑客攻防技术宝典 Web 实战篇》——国外某黑客 著

 

联系方式

官网:www.flsec.com

xoyozo 8 年前
4,147

设规则:
    属性-文件传输规则-全局
        如果 时间 为 较旧 并且 传输 为 下载 那么 覆盖
        如果 大小 为 不同 并且 传输 为 下载 那么 覆盖
        如果没有匹配的规则,那么:跳过

建站点:
    站点-站点管理器-新建站点
        设好本地路径,传输 自定义规则 使用全局设置

队列:
    连接站点,在需要备份的目录上右键,队列
    在队列上右键,另存为

计划:
    工具-计划-新建任务
    选择队列文件,使用自定义规则
    设置执行时间,Windows 密码

设置完成!

xoyozo 11 年前
5,335

最小化安装 CentOS 6.4,配置网络

一条一条执行:
yum -y update
yum -y install wget
yum -y install vim
yum -y install screen
screen -S lnmp

安装 LNMP:http://lnmp.org/install.html
下载安装一条龙

不要升级各软件,以防不测

PHP 防跨站:执行一段命令,替换 vhost.sh 文件,以后添加网站就会自动添加 HOST 防跨站、跨目录的配置

更改数据库路径(/home/mysql/var)
http://bbs.vpser.net/thread-1558-1-1.html 第20条
端口(为了 pureftpd 能安装成功,还是不要改端口了)

防火墙加端口
vim /etc/sysconfig/iptables
service iptables restart

FreeTDS:使 php 支持 mssql

安装 PureFTPd
添加FTP用户时,UID和GID必须>1000,譬如添加一个xWeb组和用户:
groupadd -g 2000 xWeb
useradd -u 2000 -g xWeb -s /sbin/nologin -M userDefault
useradd -u 2001 -g xWeb -s /sbin/nologin -M userFang
useradd -u 2002 -g xWeb -s /sbin/nologin -M user2
useradd -u 2003 -g xWeb -s /sbin/nologin -M user3
然后 chown xUser:xWeb -R /home/wwwroot/网站目录
这样PHP木马就不能上传。非www用户每站一个,防止跨站
要写入的目录chown为www用户,这样PHP能创建目录及上传文件,允许公共写入,使FTP能操作写入(未验证PHP创建的新目录FTP有没有写入权限,即继承),所有要写入的目录必须 deny all

chown userFang:xWeb -R /home/wwwroot/fang.eyuyao.com/
chown www:www -R /home/wwwroot/fang.eyuyao.com/uploads/
chown www:www -R /home/wwwroot/fang.eyuyao.com/eyy/src/
chown www:www -R /home/wwwroot/fang.eyuyao.com/index/Runtime/
chown www:www -R /home/wwwroot/fang.eyuyao.com/admin/Runtime/
—————————————————————————————————
#设置目录不允许执行PHP(其实是使符合正则的路径不可读)
#找到网站的 .conf 配置文件,在 location ~ .*\.(php|php5)?$ 的上面插入:
location ~ /upload/.*\.(php|php5)?$
    {
        deny    all;
    }

#支持 ThinkPHP(使用 rewrite)
location ~ /index\.php/.*$
    {
        if (!-e $request_filename) { 
            rewrite  ^/index\.php(/.*)$  /index.php?s=$1  last;
            break;
        }
    }
—————————————————————————————————
重启 LNMP    /root/lnmp restart
重启 MySQL    /etc/init.d/mysql restart
重启 PureFTPd    /root/pureftpd restart
查看 Nginx 版本    nginx -V
查看 MySQL 版本    mysql -V
查看 PNP 版本    php -v
查看 Apache 版本    httpd -v
查内存        cat /proc/meminfo
php.ini        vim /usr/local/php/etc/php.ini
iptables 路径    /etc/sysconfig/iptables
MySQL 配置文件    vim /etc/my.cnf
添加网站        /root/vhost.sh
添加ProFTPd用户    /root/proftpd_vhost.sh
—————————————————————————————————
遇到问题:
中文URL问题解决方案,FTP用强制UTF-8,单个文件传。否则在win下打包的zip在linux下解压后,编码不是utf-8,导致打开URL 404
能用记事本打开的文件若包含中文,应另存为 utf-8 编码。

ThinkPHP 项目修改配置文件后,必须删除 /index/Runtime/* 缓存文件!!!

xoyozo 11 年前
4,537

为防止木马访问网站根目录以外的文件
搭建服务器时一定在所有分区拒绝 IIS_IUSRS 组的一切权限(如果网站用户隶属的是其它组就配置那个组)
新加硬盘时也务必同上操作

 

 

创建用户,归组

创建目录
wwwroot
logs

设置目录权限

创建FTP用户

下载代码

IIS创建网站

绑定域名

日志路径,应用

修改应用程序池,版本,管道,标识用户

要上传的目录权限,去脚本

本机改 hosts 测试

改域名解析

改数据库连接

关老站

打开测试
 

xoyozo 9 年前
3,406

这里仅记录我个人的安装过程,仅供参考。

安装前的准备

  • 手动备份:数据库、浏览器收藏夹、FTP 站点、Navicat 连接、远程桌面、RaiDrive(点登录)、RSS源、虚拟机镜像、“下载”目录、“桌面”目录、开机启动程序、iPhone 备份(C:\Users\[用户名]\Apple\MobileSync\Backup)、浏览器插件、自动备份中的差异化文件。

  • 推荐的 Edge 扩展(登录账号会自动同步):Charset、Feedbro、IP Address and Domain Information、Kimi 浏览器助手、JSONView、Pretty Js、User-Agent Switcher and Manager、Wappalyzer、凌风云网盘助手、图片助手(ImageAssistant) 批量图片下载器、猫抓、网页更新提醒

  • 桌面图标和开始菜单截图。桌面如果是手动排序图标的,先按分类归入文件夹,以方便系统恢复后按分类摆放。

  • 备份:桌面、Chrome 用户目录、聊天记录、快捷回复、项目、hosts 文件。

    像 QQ、TIM、微信、旺旺、千牛 等即时聊天工具,最好将数据文件目录拷贝一份(包含图片视频等),再打开软件登录帐号进行记录备份(一般不含图片视频等)。这样,在重装系统后,如果还原拷贝的聊天文件不能供聊天软件使用,可以用备份数据恢复。

  • 备份剪映目录,否则重装后需要重新下载素材/字体等,位置:C:\用户\AppData\Local\JianyingPro\User Data\

  • 备份到移动硬盘或 NAS

  • 排查以上未提及的新软件或新设置是否有需要处理或备份的。

  • 清空回收站

  • 确定系统盘所在硬盘和分区和大小,避免在格式化时选错硬盘分区。

  • 外星人电脑开机按 F2 进入 BIOS,F12 选择启动设备。

设置

  • 这台电脑(右键)- 属性 - 高级系统设置 - 高级 - 性能设置 - 高级 - 更改 - 去掉“自动管理所有驱动器的分布文件大小”前的勾,选择 SSD 分区的分布文件为系统管理的大小,点设置,其它分区无分布文件,点设置 - 确定

  • 以上是在 SSD 空间足够的情况下,如果不足,那么可以分配到其它分区。

  • Windows 更新、并在高级选项中开启(更新 Windows 时接收其它 Microsoft 产品的更新)

安装驱动

  • 目前的 Windows Update 已经可以安装大部分驱动了,如果设备管理器中还有警示图标,或者有些硬件功能不能启用,那么可以前往对应品牌的官网下载,如联想驱动安装工具戴尔驱动程序,其它可使用驱动精灵

安装 Office

  • 安装 Office 批量授权版

  • 立即安装即可,不要更改路径。

恢复数据

  • Chrome 目录(C:\Users\[用户名]\AppData\Local\Google\Chrome\User Data\Default\)

  • QQ 记录(默认路径:C:\Users\[用户名]\Documents\Tencent Files)

  • 微信记录(默认路径:C:\Users\[用户名]\Documents\WeChat Files),微信记录可能会不能使用

  • 视情况删除非系统盘的 \Program Files、\Program Files (x86)、\Users\xoyozo\AppData 等

应用程序

  • 安装 Edge。

  • 先安装 SQL Server,再安装 Visual Studio(如欲同时安装低版本 VS,先安装低版本,再安装高版本)

  • 安装 Adobe

  • 安装其它软件

  • 替换 hosts,若出现安全软件警告,信任即可。

激活 Windows、Office、Adobe 等:

细节

  • Win10 任务栏单击“文件资源管理器”打开“此电脑”的设置方法:打开任意文件资源管理器窗口,菜单 - 查看 - 选项,将“打开文件资源管理器时打开”改为“此电脑”

  • Win10 任务栏日期显示星期:控制面板 - 更改日期、时间和数字格式 - 其他设置 - 日期,将短日期改为:yyyy/M/d ddd

  • 如何在 Windows 11 任务栏时间上显示“秒”

  • 随系统启动程序的目录(所有用户):C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

  • 随系统启动程序的目录(单个用户):C:\用户\[用户名]\AppData\Roaming\Microsoft\Windows\「开始」菜单\程序\启动,(即:C:\Users\[用户名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

  • 自带的微软五笔已经提供五笔拼音混打了,所以抛弃QQ五笔了

  • Win10系统怎样让打开图片方式为照片查看器

  • 设置 Navicat 自动运行。

  • 设置电源相关

  • SQL Server 按需设置启动/禁用:SQL Server 配置管理器 - SQL Server 服务 - 右侧双击选择实例 - 切换到“服务”选项卡 - 启动模式


xoyozo 10 年前
14,768

最近有服务器不时出现的CPU使用率超高,内存几乎被吃光,系统甚至自动kill掉一些进程,如sshd,vsftpd等。用top查看,PHP-CGI进程高挂不下,如下是解决方案:
一、进程跟踪
# top //找出CPU使用率高的进程PID
# strace -p PID //跟踪进程
# ll /proc/PID/fd //查看该进程在处理哪些文件
将有可疑的PHP代码修改之,如:file_get_contents没有设置超时时间。
二、内存分配
如果进程跟踪无法找到问题所在,再从系统方面找原因,会不会有可能内存不够用?据说一个较为干净的PHP-CGI打开大概20M-30M左右的内存,决定于PHP模块开启多少。
通过pmap指令查看PHP-CGI进程的内存使用情况
# pmap $(pgrep php-cgi |head -1)
按输出的结果,结合系统的内存大小,配置PHP-CGI的进程数(max_children)。
三、监控
最后,还可以通过监控与自动恢复的脚本保证服务的正常运转。下面是我用到的一些脚本:
只要一个php-cgi进程占用的内存超过 %1 就把它kill掉
#!/bin/sh
PIDS=`ps aux|grep php-cgi|grep -v grep|awk’{if($4>=1)print $2}’`
for PID in $PIDS
do
echo `date +%F….%T`>>/data/logs/phpkill.log
echo $PID >> /data/logs/phpkill.log
kill -9 $PID
done


检测php-fpm进程
#!/bin/bash
netstat -tnlp | grep “php-cgi” >> /dev/null #2&> /data/logs/php_fasle.log
if [ "$?" -eq "1" ];then #&& [ `netstat -tnlp | grep 9000 | awk '{ print $4}' | awk -F ":" '{print $2}'` -eq "1" ];then
/usr/local/webserver/php/sbin/php-fpm start
echo `date +%F….%T` “System memory OOM.Kill php-cgi. php-fpm service start. ” >> /data/logs/php_monitor.log
fi

通过http检测php执行
#!/bin/bash
status=`curl -s –head “http://127.0.0.1:8080/chk.php” | awk ‘/HTTP/ {print $2}’`
if [ $status != "200" -a $status != "304" ]; then
/usr/local/webserver/php/sbin/php-fpm restart
echo `date +%F….%T` “php-fpm service restart” >> /data/logs/php_monitor.log
fi

l
转自 lgh_2002 12 年前
4,264

情况一:客户端(以FlashFXP为例)

菜单 - 站点 - 选中要编辑的站点 - 选项 - 把“使用被动模式”设置为不选上

情况二:服务器端(以Serv-U为例)

站点→设置→高级→“允许被动数据传输模式,使用IP”前的钩去掉后再连接,没再显示“PORT  模式成功, 请更新你的站点 Profile”了,尝试在路由器上将端口映射中的公有服务端口由22改为21

后记:改完端口后将“允许被动数据传输模式,使用IP”重新钩上,再连接也没再出现上述提示。

5,593