fiddler导出会话并生成curl脚本

最近研究fiddler菜单无意中发现,居然可以导出会话并生成curl脚本,curl脚本可以在Linux下执行,对远程定位接口问题很有帮助。   在fiddler界面,依次点击edit–export sessions–selected sessions,选择curl即可,     导出的内容如下, curl -k -i –raw -o 0.dat -X POST -d "username=123456&password=123456&oauth_token=bbffb757381df45f118a2c286ac01abb31a01fa16acd6f3df6b640a373aa5db03acce5cfb5443ad9a516c1b8e3ab8c49&denyCallbackURL=http%%3A%%2F%%2Fwww.yy.com%%2Flogin%%2FudbCallback%%3Fcancel%%3D1&UIStyle=xelogin&appid=5719&mxc=&vk=&isRemMe=0&mmc=&vv=" "https://lgn.yy.com/lgn/oauth/x2/s/login_asyn.do" -H "Host: lgn.yy.com" -H "Connection: keep-alive" -H "Accept: */*" -H "Origin: https://lgn.yy.com" -H "X-Requested-With: XMLHttpRequest" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" -H "Referer: https://lgn.yy.com/lgn/oauth/authorize.do?oauth_token=bbffb757381df45f118a2c286ac01abb31a01fa16acd6f3df6b640a373aa5db03acce5cfb5443ad9a516c1b8e3ab8c49&denyCallbackURL=http://www.yy.com/login/udbCallback?cancel=1&cssid=5719&regCallbackURL=/login/udbCallback&UIStyle=xelogin&rdm=0.5864189190174589" -H…

Continue Reading

使用Fiddler模拟重复提交

       对于多数网站后端处理来说,重复提交的问题很常见,程序员也经常忽略或懒得修改重复提交的问题。但是对于关键业务来说,解决重复提交的问题就非常有必要。去年公司的Java服务因为没有做并发控制,导致30万元左右的财务损失,虽然只追究了开发人员的责任,但是作为测试人员,着实为自己的水平低下蒙羞。        下面我们说说如何用fiddler工具模拟重复提交。         我们就以登录yy网站为例子 下图是我设置浏览器使用fiddler代理后抓到的yy登录的会话   图中可以看出,数据包到达的目的主机是lgn.yy.com 1  先在fiddler界面按“alt + q”键输入“bpu lgn.yy.com”截断发往此主机的数据包,Ctrl + a 全选会话并删除   2  在yy登录界面输入用户名和密码点击确定   3  此时fiddler界面出现一个被拦截的红色标记的会话,选中此会话,按键盘“shift + r”键,输入要复制的会话数,例如9个,全选这十个会话再点击“GO”放行数据包到服务器,即可重复发包。         很显然,yy网站对重复提交做了控制。 这里只是10次重复提交,如果这个业务是送积分或代金券的,一次提交成千上万次,结果可想而知。 笔者就遇到过这种重复提交的漏洞,结果一般是数据库产生多条重复的数据,而且用fiddler可以直接绕过前端,直接对后端进行攻击。  

Continue Reading

du命令统计指定层级目录大小

    有时候我们在实际工作中,如裁剪APP包大小的时候,需要检查各个层级目录的总大小,这样可以针对占用空间较大的目录做裁剪。     在Linux中统计指定层级的目录大小可以用du命令,来个实际例子,下面的命令可以统计Linux的etc目录的第一级目录按大小升序排列前9位, [root@openresty ~]# du -m –max-depth=1  /etc/ | sort -n | tail 1    /etc/X11 1    /etc/xdg 1    /etc/xinetd.d 1    /etc/xml 1    /etc/yum 1    /etc/yum.repos.d 4    /etc/pki 9    /etc/gconf 21    /etc/selinux 40    /etc/  

Continue Reading

Jenkins之SSH发布插件脚本编写的大坑

使用Jenkins自动构建环境已经有段时间了,其中一个大坑足足绊脚了一个多月。 事情是这样的,目前在做的项目是个电商网站,用的是node.js,Jenkins服务器已设置和node.js服务器的ssh免密码登录,并且已经建立了自动构建的Jenkins工程,通过ssh插件远程执行node.js服务器上的shell脚本来完成发布,部分配置如下图,   脚本的主要动作有三个:     1  停止相关node.js进程     2  部署node工程     3  重启停止的node进程   然而问题来了,此脚本在node.js服务器上shell控制台运行完全正常,相关node.js进程可以正常stop和start,但是Jenkins上运行构建后,最后一步的node.js的启动失败,netstat -nltp 查看对应端口根本未打开。   尝试1:设置Jenkins内置变量BUILD_ID=dontkillme,运行依然失败 尝试2:上图中“exec command”设置为bash启动,也就是bash /home/www-data/TEST_MAS_jenkins/mas_jenkins_deploy.sh,运行后依然无法启动node.js进程   就这样一直僵了一个多月,一直找不到办法。   有一天突然跟架构师商量此事,无意间在脚本中加入了一行,仅仅一行,就搞定了。 原来Jenkins远程调用node.js服务器脚本的时候,环境变量出问题了,脚本中启动node.js的命令可能需要其他库的路径,但是通过Jenkins调用却未获得。 解决办法:在脚本中加入一行source /etc/profile即可同步环境变量   至此,测试环境真正实现自动化构建和部署。

Continue Reading

GlusterFS3.7.3源码编译安装

一、背景简介     最近在学习性能测试,首先想到如果能真是搭建个基础网站架构,肯定对进一步的学习有帮助,肯定比lordrunner自带的那个网站程序更有帮助。在搭建的过程中,因为是要建立个远程文件服务器,glusterfs是个不错的选择,搭建glusterfs服务器费了不少周折,折腾了一个多星期才搞定,在这里有必要总结下。   二、系统环境      环境中共3台服务器,IP分别是172.17.1.135  172.17.1.134  172.17.1.133,其中133和134作为glusterfs服务器端,135作为客户端挂载服务器端的卷。     三个服务器172.17.1.135  172.17.1.134  172.17.1.133的信息依次如下图所示,       三、编译安装     三台服务器上均执行以下安装步骤 #  添加 epel 软件源     rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm   #  安装必要的依赖包     yum install -y aclocal autoconf aotuheader automake libtool     yum install -y  automake autoconf libtool flex bison openssl-devel libxml2-devel python-devel libaio-devel libibverbs-devel librdmacm-devel readline-devel lvm2-devel…

Continue Reading

AWK高级用法之打印匹配行的上一行

    最近对数据处理很感兴趣,一直在研究Linux三剑客:grep AWK sed ,下面举个实际工作中遇到的一个小实例,联用三大文本处理剑客。   已知table.txt文件,cat查看文件内容如下,其实也就是我查询数据库中部分表的状态。   [pc@glusterfs-srv-01 ~]$ cat table.txt   *************************** 15. row ***************************            Name: procs_priv          Engine: MyISAM         Version: 10      Row_format: Fixed            Rows: 0  Avg_row_length: 0     Data_length: 0 Max_data_length: 239253730204057599    Index_length: 4096       Data_free: 0  Auto_increment: NULL     Create_time: 2016-09-19 01:38:11     Update_time: 2016-09-19…

Continue Reading

生产环境CentOS6.x服务器初装后的配置

#!/bin/bash   #  #selinux配置#     setenforce 0     grep -iE 'SELINUX=enforcing' /etc/selinux/config ; [ $? -eq 0 ] && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config     getenforce   #  #防火墙 iptables 配置#     iptables -F     /etc/init.d/iptables save     iptables -vnL       #  #精简开机自启动服务, 刚装完操作系统可以只保留crond,network,rsyslog,sshd这四个服务。(Centos6.7为rsyslog)此命令本人没经过测试,请慎用#     #for i in `chkconfig –list|grep 3:on|awk '{print $1}'` ; do…

Continue Reading

Shell重定向&>file、2>&1、1>&2的区别

        在UNIX/Linux系统中,每个打开的文件都有系统赋予的一个文件描述字,这是个小整数。一个文件被打开后,用户可以直接用这个描述字来引用对应的文件。系统为每个进程自动打开三个标准文件(即标准输入、标准输出和标准错误输出),其文件描述字分别为0,1和2。   shell上: 0表示标准输入 1表示标准输出 2表示标准错误输出 > 默认为标准输出重定向,与 1> 相同 2>&1 意思是把 标准错误输出 重定向到 标准输出. &>file 意思是把 标准输出 和 标准错误输出 都重定向到文件file中   用例子说话: 1. grep da * 1>&2 2. rm -f $(find / -name core) &> /dev/null 上面两例中的 & 如何理解,&不是放到后台执行吗?   牛解:   1.&>file或n>&m均是一个独立的重定向符号,不要分开来理解。   2.明确文件和文件描述符的区别。   3.&>file表示重定向标准输出和错误到文件 例如: rm -f $(find /…

Continue Reading

Linux查看文件属性的几种方法

    Linux下查看文件属性有多种方法,且这些方法中偏向不同,具体如下:   1  ls     ls -a 查看所有文件     ls -l 查看详细的属性      [pc@li1209-91 ~]$ ls -a ; ls -l . .. bak .bash_history .bash_logout .bash_profile .bashrc .lesshst .lftp lujiaz .ssh .viminfo wordpress wp-ueditor total 16 drwxrwxr-x 3 pc pc 4096 Sep 10 12:37 bak drwxr-xr-x 4 nginx root 4096 Jul 7 20:30…

Continue Reading

WordPress迁移至VPS的那些坑

一、背景简介 linode VPS买了两年多了,一直做shadowsocks翻墙用,上个月linode帮我免费升级到2GB内存,感觉VPS性能实在浪费,于是就想把之前bluehost的WordPress网站迁移到linode VPS,网上搜了很多教程,被坑了很多次,最终转移成功,下面介绍整个迁移过程(此站点peloo.net就是从owemeawe.com迁移过来的),顺便帮助下有需要或者正在困惑的朋友。   二、系统环境 1  旧网站配置信息 一个之前买的bluehost虚拟主机,上面傻瓜安装了WordPress。   2  新主机配置信息 [pc@li1209-91 ~]$ uname -a ; nginx -v ; mysql -V ; php -v Linux li1209-91.members.linode.com 4.6.5-x86_64-linode71 #2 SMP Fri Jul 29 16:16:25 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux nginx version: openresty/1.9.7.5 mysql Ver 14.14 Distrib 5.5.48, for Linux (x86_64) using readline 5.1 PHP…

Continue Reading