2017年1月22日星期日

树莓派自动浇花器教程

 配件:
树莓派 --- 若干杜邦线 --- L289N --- 鳄鱼夹一对 ---385水泵 --- 硅胶管两条
                                            |
                                   水泵供电电源

L289N接线图

IN1  -- GPIO
IN2  -- GPIO
PWM1 -- PWM

12V  -- 电源12V火线
GND -- 电源12V零线 ,树莓派GND
(注意,如果不接树莓派GND,输出电压就很小了)

OUT1  -- 水泵+/-
OUT2  -- 水泵+/-
(因为水泵只有一个电流方向,接反也不会影响)

12v水泵接硅胶管
水平出水口是中间口
进水口是边边上的口

参考链接:
1 2 3 4






2017年1月18日星期三

firefox过滤百度广告

首先你需要在你的firefox安装油猴,greasemonkey插件

GreasyFork: 浏览器油猴脚本大全

 GreasyFork是一个为用户提供浏览器用户脚本的网站,用户脚本的本质是一段代码,其工作原理为用户访问指定站点时添加功能、去除烦人的东西,亦或者对其进行其他改造;针对著名的游猴脚本插件而运行的代码。

进去首页之后,在搜索框输入你想要做的事情。

百度广告(首尾推广及右侧广告)清理

点击安装此脚本,就可以了。
然后去百度搜索一些词语,发现整个世界都清净了

xshell配置与问题记录

Xshell选中文字自动发送Ctrl+C的问题

xshell是一个程序员经常使用的工具,但最近使用时遇到了一个很尴尬的问题,在看日志的时候当鼠标双击或者选中一行文字时,xshell会自动发送一个ctrl+C的命令,如果此时有正在执行的命令则会被终止,屏幕也会自动跳到最下方。

[root@node-3 glance]# ^C
[root@node-3 glance]# ^C
[root@node-3 glance]# ^C
[root@node-3 glance]#

后来在网上查资料看到原因,原来是英文词典的划词翻译导致的,将电脑上正在运行的词典,如有道词典或金山词典,全部禁用划词翻译就好了,装了词霸秒译也会出现这个问题(词霸自动安装),打开控制面板,将词霸秒译卸载即可。

xshell 在使用screen时候,用centos与debian
快捷不一样的解决办法

2017年1月15日星期日

google chrome浏览器提示flash过期的问题

去adobe的debug download,可以下载到以前的版本

虽然上面有链接,但是可能会过期或无效,只需要搜索上面的关键字即可:
adobe debug download

基于Chromium应用的版本 – PPAPI
adobe flash player ppapi


在windows下面找到:
Download the Flash Player content debugger for Opera and Chromium based applications – PPAPI
下载,安装后,重启chrome,就没有问题了

2017年1月13日星期五

burp suite 测试restful API的插件编写

在测试restful API最大的问题是自定义的验证机制,其中签名就是很难处理的问题,如果你不想太啰嗦,直接反编译找到验证机制的代码,然后写出poc,之后编写成burp插件,这样就可以畅通无阻的测试任何参数跟接口了。
编写插件用了我整整4天,真心难写,没有现成的代码让你抄袭,只能不停的去寻找开源的脚本,一边测试一边理解,而且排除插件bug过程非常麻烦,没有debug工具,只能不停的去重新加载与卸载插件,才能debug脚本,过程很繁琐。

编写插件的具体方法不多说,上别人的链接。并且说说使用心得。
burpsuite实战指南
burpsuite插件开发中文API 
如何编写自己的Burp Suite插件
BurpSuite插件开发指南之 API 上篇
BurpSuite插件开发指南之 API 下篇  
BurpSuite插件:请求响应参数的AES加解密 

由于我只熟悉python代码,所以只能写python插件
BurpSuite插件开发指南之 Python 篇
burpsuite扩展开发之Python (from wooyun)
How to Do Burp Fuzzing Using Python
Automatically Adding New Header with Burp (需要翻墙)

toolFlag 工具代号看文档

代码库参考:
Burp_Extender_Pro
这个文件下有注释 Burp_Extender_Pro/Burp_Extender_Pro/src/burp/BurpExtender.java
burpsuite-changeU
这个是来自上面链接的 burpsuite扩展开发之Python (from wooyun)
图形化重算sign和参数加解密插件(更新2.1版本) 
如果安装插件出现错误:
burp/BurpExtender : Unsupported major.minor version 52.0
请选择对于版本安装
The reported major numbers are: (Source: Wikipedia)
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45


几个附件:
Burpsuite_extends_API_中文版.CHM   (From Personal Blog)
Extending-Burp-with-Python.pptx   (From OWASP)
ReSign (From Github)

还要讲一下 burp 1.7.11 的配置保存与临时文件保存的问题

参考链接:
1. 组件常数Constant Field Values
2. [pdf] Extending Burp with Python - owasp

2017年1月9日星期一

Nullega - - python示例代码搜索引擎

关于 Nullega (knowledge)
Nullege 是一个python源代码的搜索引擎,它在具有生产质量保证的开源项目中帮助你找到python模块的可工作示例,
不像普通的搜索引擎,Nullege真的理解python和知道下面代码就是 wx.Frame.GetSize() 的示例。

    class InspectionFrame(wx.Frame):
        def SaveSettings(self, config):
            w, h = self.GetSize()
           
它也尝试在第一次搜索结果页面中给你带来更多的信息,所以你不需要太多的点击就可以找到正确的示例。

2017年1月8日星期日

Burp Suite 部分https流量截断问题的解决

2019年3月22日更新:
在1.7版的burp,已经默认支持2048CA证书,无需自己配置生成新的根证书。
但是在IOS新版本中,通过 http://burp 将CA证书导入到IOS系统后,需要执行一个操作,才可以让新导入的证书生效,并且让burp能够正确的截取https的流量,操作方式如下:

On some versions of iOS you may need to go to "Enable Full Trust for the PortSwigger CA".
You can configure this setting at Settings > General > About > Certificate Trust Settings.

这个设置对应的报错:
1553236877564 Error Proxy     [59]  The client failed to negotiate an SSL connection to sit.xxxx.com:443: Remote host closed connection during handshake

-------------------------------------update line-------------------------------------------
Burp Suite默认CA证书公钥位长是1024 bits,而在IOS 9之后,应用都是使用2048 bits的,
这就导致很多https流量无法协商ssl隧道,导致流量无法被截取。

具体的话,会看到下面的日志:
The client failed to negotiate an SSL connection to alogs.umengcloud.com:443: Received fatal alert: certificate_unknown

这篇文章,详细介绍了这类问题的解决方案

但是按照那篇文章做,最大的问题在于,der格式证书与密钥的生成,经过几天的研究,
按照下面两个链接做就可以完成:
1. 自建CA,生成根证书
2. 生成der格式证书的命令,重点看Creating a Custom CA Certificate 节
3. 关于证书格式的说明与操作 (阿里云文档)

生成后导入burp,按照上面文章的设置,便可以捕获所有IOS app的https流量而没有任何问题了。

下图是burp进行https流量截断的原理:

具体的证书生成方法如下:
Creating a Custom CA Certificate

You can use the following OpenSSL commands to create a custom CA certificate with your own details, such as CA name:
openssl req -x509 -days 730 -nodes -newkey rsa:2048 -outform der -keyout server.key -out ca.der


[OpenSSL will prompt you to enter various details for the certificate. Be sure to enter suitable values for all the prompted items.]

openssl rsa -in server.key -inform pem -out server.key.der -outform der
openssl pkcs8 -topk8 -in server.key.der -inform der -out server.key.pkcs8.der -outform der -nocrypt

Then click on the "Import / export CA certificate" button in Burp, and select "Cert and key in DER format". Select ca.der as the certificate file, and server.key.pkcs8.der as the key file. Burp will then load the custom CA certificate and begin using it to generate per-host certificates. 



Burp Suite error “burpsuite handshake alert: unrecognized_name”的问题解决方法
        java -Djsse.enableSNIExtension=false -jar burpsuite_pro_v1.5.21.jar
        java -Djsse.enableSNIExtension=false -jar BurpLoader.jar

Burp生成证书后如何正确导入浏览器
       证书导入chrome,正常截断百度https流量
       Proxy  -->  Proxy Listeners --> import/export CA certificate
       -->  Export  -->  Certificate in DER format

        建议将导出的证书与原来的证书合理放置,未来要用的话就不用再生成与导出了。
        还有就文件命名与后缀的选择。
        https_chrome_1024.cer
        这种证书适合IE浏览器与chrome使用

在chrome与IE浏览器导入
        chrome  -->  HTTPS/SSL  -->  管理证书  --> 受信任的根证书办法机构  --> 导入

在firefox导入
        地址栏输入“http://burp”,下载CA证书,双击导入即可


     














2017年1月3日星期二

python 单线程代码重构为多线程

多线线程应该注意变量的独立性

比如 ssh_shell 是global的,上一次个shell会被当前的shell覆盖掉,而多线程又是同时进行的

本次改动
1. ssh_buffer_recv 加入了 ssh_shell参数
2. cisco_mode.py 的 set_mode 加入host参数,用来标识当前主机的shell是哪一个
3. do_mission 里面用动态生成的变量去装载当前主机的shell,同时用于区分各自的shell

初始化git本地库的时候,停止跟踪不必要的文件

3.1.2 初始化项目

以下这些操作,需要在项目的目录下进行。请注意如果你的项目文件夹路径包含中文,请使用 TortoiseGit 工具来操作,不要使用 Git Gui,否则会出现错误。

3.1.3 创建一份排除版本控制的文件类型清单

在 项目中,实际上有很多文件是不需要版本控制的,例如编译过程中生成的中间文件 .obj,IDE 的配置文件(Intellj IDEA 的 .idea 文件夹),编译生成的文件(/out/ 和 /bin/ 文件夹),Python的.pyc文件,像这些类型的文件我们可以设置过滤,避免导致版本库很大。
我们只要在项目的目录下,放一个 .gitignore 文件就可以了。
注意,在windows下的添加 . 开头文件的时候,也提示无法创建,用这个办法:
 .gitignore.      前后两个点
就可以成功创建。

这份 .gitignore 文件,排除了.idea/,out/,bin/ 文件夹,以及所有类型为 .pyc 的文件


2017年1月2日星期一

pycharm老是弹出Can't start Git: git.exe

pycharm 老是弹出,影响工作效率
Can't start Git: git.exe
Probably the path to Git executable is not valid. Fix it.
解决它的办法就是,点fix it,然后指定git.exe路径,然后test一下
返回正常的话,就不会再烦你了