绕过PyQt6的一些小坑

直接进入干货,供遇到相同情况的小伙伴参考。

一、pyuic6导出designer设计的窗体,py代码不完全兼容PyQt6

用Qt Designer设计完界面后,要用pyuic6导出为py文件,再在代码中调用,但直接调用会报错,原因是部分代码(主要是窗体对齐)导出的还是PyQt5的格式。
如导出为:

QtCore.Qt.AlignHCenter

在PyQt6下应该是:

QtCore.Qt.AlignmentFlag.AlignHCenter

需要将所有的对齐代码修改过来。可以用脚本自动处理(在windows下时可用wsl执行)。

awk '{sub(/Qt.AlignH/,"Qt.AlignmentFlag.AlignH");sub(/Qt.AlignL/,"Qt.AlignmentFlag.AlignL
");sub(/Qt.AlignB/,"Qt.AlignmentFlag.AlignB");sub(/Qt.AlignV/,"Qt.AlignmentFlag.AlignV");sub(/Qt.AlignT/,"Qt.AlignmentFlag.AlignT");sub(/Qt.AlignR/,"Qt.AlignmentFlag.AlignR"
);print $0}'

继续阅读

Kivy/KivyMD开发Andoird程序的一些踩坑记录

之前用python做了个命令行的爬虫,在安卓上运行时还得打开termux,用上虚拟键盘,很不方便,于是一直想改为Android版本的。近期刚发现Kivy/KivyMD可以基于Python进行跨平台开发,国庆期间进行了尝试。在此记录一些踩坑经历,供有相同需求的同学参考。

一、解决中文乱码问题

Kivy和KivyMD原生不支持中文,采用的默认字体是英文字体,直接运行起来就会显示方框。

Kivy中可以通过设置LabelBase修改字体,但是每一个控件都要在代码中增加font_style的定义,非常不方便。而KivyMD的控件就没有提供定义LabelBase改字体的功能。

而且,即使在本机开发环境中修改了字体设置,在打包生成apk文件安装后,在手机上运行时仍然是乱码。

下面是使用buildozer打包时,彻底解决中文乱码问题的方法。

继续阅读

部署使用WebGoat6网络漏洞测试平台

什么是WebGoat?引用一下OWASP官方介绍:

WebGoat是OWASP组织研制出的用于进行web漏洞实验的应用平台,用来说明web应用中存在的安全漏洞。WebGoat运行在带有java虚拟机的平台之上,当前提供的训练课程有30多个,其中包括:跨站点脚本攻击(XSS)、访问控制、线程安全、操作隐藏字段、操纵参数、弱会话cookie、SQL盲注、数字型SQL注入、字符串型SQL注入、web服务、Open Authentication失效、危险的HTML注释等等。WebGoat提供了一系列web安全学习的教程,某些课程也给出了视频演示,指导用户利用这些漏洞进行攻击。

WebGoat多年来一直是版本5.4,今年升级为版本6。主要是基于新的框架和界面对各项课程进行了重新集成,项目主页是 https://github.com/WebGoat/WebGoat

先来看一下两个版本的界面:

实际使用中,新版本不仅界面漂亮,关键是hints、solutions等选项的内容更加完善,便于学习。使用WebGoat有两种方法,一是直接下载运行包WebGoat-6.0-exec-war.jar,然后:

java -jar WebGoat-6.0-exec-war.jar

随后就可以在本机浏览器里使用了:http://localhost:8080/WebGoat

但是个人更倾向于另一种方法,就是下载源码包,通过maven部署使用。好处是可以完成一些需要修改源代码的课程,而且不限于本机运行。但全新安装tomcat、maven、java等必需环境,而且把参数设置好非常麻烦,所以直接在OWASP的Broken Web APP虚拟机上使用是最方便的,因为环境都已经构建好了。具体步骤如下:

下载得到WebGoat-Master.tar.gz,复制到/var/www里解压,得到WebGoat-master项目目录;
因为虚拟机启动时tomcat已经运行了,所以要先停止服务,再用mvn启动。将几个过程写成批处理:

    cat >~/run_webgoat6.sh<<EOF
    /etc/init.d/tomcat6 stop
    cd /var/www/WebGoat-master
    mvn clean tomcat:run-war
    EOF

这样,WebGoat5.4和6两个版本就是虚拟机里共存了。开机以后不运行run_webgoat6.sh脚本,则启动webgoat5.4,运行了以后再从主界面进入就可以play了!

给hostapd打补丁, 解决rt3070网卡建立软AP时无法握手的问题

折磨了自己一周多,供遇到同样问题的朋友们参考。

一般有两种方法在kali linux下建立软AP,一是使用airbase-ng,优点是运行方便,适应网卡的范围比较广,比如常见的rtl8187的网卡,局限是只能建立OPN和WEP加密的,不支持WPA和WPA2加密。二是通过hostapd,支持OPN、WEP、WPA、WPA2等多种加密方式,但支持的网卡有限。

之前我手上有rtl8187的网卡,一直把它当作神器,后来发现完全是被误导了,不仅信号一般,且支持的模式相当有限,最关键是不支持hostapd建立WPA加密的AP。用iw list命令可以看到rtl8187网卡支持的模式:

iw list
…
Supported interface modes:
     * IBSS
     * managed
     * monitor

一阵google后,在某电商那淘了一块rt3070芯片的,价格便宜、童叟无欺,支持b/g/n(rtl8187仅支持b/g),标配双6dBi增益天线,iw list看一下,瞬间发现这泥马才是真正的神器啊!(强烈推荐!!)

Supported interface modes:
     * IBSS
     * managed
     * AP
     * AP/VLAN
     * WDS
     * monitor
     * mesh point

继续阅读

一个简单的脚本,实现自动执行MITM攻击(更新0.2)

这几天折腾MITM攻击,反复输入同样的命令很烦人,参照国外论坛一个脚本,结合自己的习惯修改了一下,将几个常用命令写到一个文件里,实现相对自动的操作。

脚本很简单,简单说一下功能,内容就不多注释了。

1)设置监听网卡、端口、目标IP;

2)设置tcpxtract、driftnet、urlsnarf等辅助工具的启用;

3)自动运行sslstrip和ettercap,并输出数据到/tmp/(用户定义)目录中供后期分析;

4)监听结束后调用etterlog显示数据,并调用wireshark进行抓包分析;

5)简单的输入判定;

6)可以在命令行中输入一组或两组IP,重复运行时可通过bash log获取上次输入,不用每次运行都要重复输入IP。(更新)

代码如下:

继续阅读

折腾kali

这几天折腾kali的心得,记录一下

一、在三星note 8.0上安装kali

先安装linuxonandroid,然后下载kali镜像文件,放在外置存储卡上,目录随意,然后运行即可。主要问题是启动postgresql前,要将postgres用户添加到相关组里,命令如下:

usermod -a -G android_inetusermod -a -G android_inet

然后就可以service postgresql start了,不过貌似镜像文件要用ext2格式的,ext4的不行

三星note8.0的自带内核不支持内置网卡的mon模式,想玩aircrack之类的小伙伴们,只能等有高人改内核啦!

继续阅读