Author name: 哈呜

CTF Writeup: from_sqli_to_shell_i386

今天给单位的小年轻讲网络安全课程,用了 from_sqli_to_shell_i386 这个靶机。题目简单,iso 文件又小,很适合入门。 这个靶机上有一个网站。先找到网站的 SQL 注入点;然后通过 SQL 注入获取 admin 帐号密码;再使用 admin 用户登录,发现有文件上传的模块;通过文件上传漏洞上传木马文件,获取系统执行权限。Done 👌   贴一下详细的解题过程: 1. 先用下载到的 from_sqli_to_shell_i386.iso 文件新建一个虚拟机 […]

Qt: QTreeView 可视区域内节点判断与滚动事件

这两天遇到两个问题: 1、对于一个 QTreeView,如何判断一个节点的 QModelIndex 是否处于 QTreeView 可视区域内。当 QTreeView 中有太多节点,必然有些节点是处于可视区域外部的,不显示的。QTreeView 也不会对这些不显示的节点调用 itemdelegate.paint() 方法。 2、如何获取 QTreeView 内容的滚动事件。 不只是对 QTreeView,所有的 QAbstractItemView 派生类,包括 QListView,

Python 创建线程安全的单例

之前在文章《深入理解 Python 中的类与元类》中讲了使用 __new__() 方法可以很方便地实现单例模式。但其实那段代码是线程不安全的。 验证代码如下: import threading import time class Singleton(object): _instance = None def __new__(cls, *args, **kwargs): if

Qt: 自定义 QWidget 响应 StyleSheet 样式

1. 必须重写 paintEvent() 根据官方文档的说明,如果希望自定义的 QWidget 派生类能够响应 StyleSheet 中定义的样式,就必须用如下代码重写 paintEvent() 方法。(其实应该叫做实现 paintEvent(),因为 QWidget::paintEvent() 本来是个空函数,啥都没做) 换成 Python + PySide6 语法就是: class CustomWidget(QWidget):

QWidget 鼠标事件穿透

假设现在有两个重叠显示的 QWidget 部件,widget_1 与 widget_2。二者无父子关系,只是位置重叠,widget_1 在 widget_2 之上,如下图所示。 这个时候如果鼠标点击在 widget_1 上,widget_2 是不会响应鼠标事件的。因为事件被位于上层的 widget_1 捕获了。 如果我们想让鼠标事件穿透 widget_1,由 widget_2 捕获。就可以给 widget_1 设置

Python 项目目录结构与 pytest

最近在用 Python + Qt 做一个客户端项目,于是便重新梳理了一下项目目录结构,以及尝试用了下 pytest 写单元测试。 Python 项目的目录结构参考的是 stackoverflow 上的一位哥们的答案:how-are-python-projects-structured。   1 Python 项目目录结构 以下图为例: ① 项目(project)根目录叫做 TransferDog,项目的源码包(package)就叫做 transfer_dog。

WordPress 前端调试:无法删除中文命名的模板

1、不使用 min.js 在 wp-config.php 中增加一行 define( ‘SCRIPT_DEBUG’, true ); 即可让 WordPress 前端不使用 xx.min.js,直接使用 xx.js。 其他更多的调试设置,包括输出 php 日志、打印 sql 执行语句等,请阅读:debugging-in-wordpress 2、BUG,无法删除中文命名的模板

WordPress 技巧: 钩子、过滤器以及禁用字符转义 wptexturize()

这两天给网站换了一个不错的“文章目录”插件:ezTOC,然后无意中发现有些标题无法被正确跳转。查了半天,发现是跟 WordPress 的 wptexturize() 函数有关系。 一、WordPress 中的钩子与过滤器 钩子(hook)是 WordPress 中一种用来修改代码执行逻辑的机制。 1、首先在原来的代码中,使用 apply_filters($hook_name, …) 或者 do_action($hook_name, …),埋入一个钩子 hook_name,表示在此处执行这个 hook_name 关联的函数。 2、WordPress