函数解析:C语言如何使用Mysql数据库函数解析
函数解析:C语言如何使用Mysql数据库函数解析各类函数总结
函数名
描述
弃用
my_init()
初始化客户端库全局变量
mysql_affected_rows()
最后一个 、 或 语句更改/删除/插入 UPDATE的 DELETE行 INSERT数
mysql_autocommit()
设置自动提交模式
mysql_change_user()
在打开的连接上更改用户和数据库
mysql_character_set_name()
当前连接的默认字符集名称
mysql_client_find_plugin()
返回指向插件的指针
mysql_client_register_plugin()
注册一个插件
mysql_close()
关闭与服务器的连接
mysql_commit()
提交交易
mysql_connect()
连接到 MySQL 服务器
是的
mysql_create_db()
创建数据库
是的
mysql_data_seek()
在查询结果集中查找任意行号
mysql_d ...
内网攻击-外网访问内网的办法
内网攻击-外网访问内网的办法socat和ncat实现端口转发socat tcp-l:888,reuseaddr,fork TCP:目标:目标端口
nc --sh-exec "nc 127.0.0.1 1000" -l 888 --keep-open
nc -l -p 1000 -c "nc 127.0.0.1 888"
上面这三个命令都可以实现内网的流量转发,举个例子
nc --sh-exec "nc 127.0.0.1 1000" -l 888 --keep-open
这条命令的效果便是将对于888端口收到的流量转发给127.0.0.1的1000端口,也可以设置为转发给其他的IP的对应端口
但是很多awd的环境里面是没有ncat的环境的,一般都是netcat,ncat是netcat的升级版这时候我们只需要去nmap的官网下载ncat的rpm包,然后将rpm包转换为deb包便可以安装到环境里面去,离线就可以安装
nmap各个部件如下
最新稳定版本:x86-64(64位Linux) < a i=4>Nmap ...
内网代理工具与检测方法
内网代理工具与检测方法01 相关概念1.1 隧道技术的概念隧道技术是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将这些其他协议的数据帧或包重新封装在新的包头中发送。新的包头提供了路由信息,从而使封装的负载数据能够通过互联网络传递。
被封装的数据包在隧道的两个端点之间通过公共互联网络进行路由。被封装的数据包在公共互联网络上传递时所经过的逻辑路径称为隧道。一旦到达网络终点,数据将被解包并转发到最终目的地。注意隧道技术是指包括数据封装、传输和解包在内的全过程。
1.2 正向与反向代理的概念正向代理和反向代理是资源访问上的两个不同概念,一般来讲有下面两个含义。
正向代理:当客户端无法访问外部资源的时候(由于诸如墙这样的原因),可以通过一个正向代理去间接访问,所以客户端需要配置代理服务器的ip。正向代理是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。 ...
内核安全基础知识
内核安全基础知识本节我们介绍 Linux kernel pwn 所需要的基础知识,你可以看作简易的《操作系统导论》课程。
Operating System Kernel操作系统内核(Operation System Kernel)本质上也是一种软件,可以看作是普通应用程式与硬件之间的一层中间层,其主要作用便是调度系统资源、控制 IO 设备、操作网络与文件系统等,并为上层应用提供便捷、抽象的应用接口。
操作系统内核实际上是我们抽象出来的一个概念,本质上与用户进程一般无二,都是位于物理内存中的代码 + 数据,不同之处在于当 CPU 执行操作系统内核代码时通常运行在高权限,拥有着完全的硬件访问能力,而 CPU 在执行用户态代码时通常运行在低权限环境,只拥有部分 / 缺失硬件访问能力。
这两种不同权限的运行状态实际上是通过硬件来实现的,因此这里我们开始引入新的一个概念——分级保护环。
hierarchical protection domains分级保护域(hierarchical protection domains)又被称作保护环,简称 Rings ,是一种将计算机不同的资源划 ...
内核安全利用
内核安全利用目的在 Linux 内核漏洞利用中,攻击者可能会有以下几个目的
提权,即获取到 root 权限。
泄露敏感信息。
DoS,即使得内核崩溃。
一般而言,攻击者的主要目的是提权。
Privilege Escalation内核提权指的是普通用户可以获取到 root 用户的权限,访问原先受限的资源。这里从两种角度来考虑如何提权
改变自身:通过改变自身进程的权限,使其具有 root 权限。
改变别人:通过影响高权限进程的执行,使其完成我们想要的功能。
https://en.wikipedia.org/wiki/Privilege_escalation
Change Self内核会通过进程的 task_struct 结构体中的 cred 指针来索引 cred 结构体,然后根据 cred 的内容来判断一个进程拥有的权限,如果 cred 结构体成员中的 uid-fsgid 都为 0,那一般就会认为进程具有 root 权限。
12345678910111213141516171819struct cred { atomic_t usage;#ifdef CONF ...
内核学习入门-CISCN2017_babydriver 复现
内核学习入门-CISCN2017_babydriver 复现附件题目附件可在此处下载。
题目给了三个文件,分别是:
boot.sh 启动脚本
bzImage 内核启动文件
rootfs.cpio 根文件系统镜像
尝试执行初始时,直接解压 babydriver.tar 并运行启动脚本:
123456# 解压mkdir babydrivertar -xf babydriver.tar -C babydriver# 启动cd babydriver ./boot.sh
但 KVM 报错,其报错信息如下所示:
12Could not access KVM kernel module: No such file or directoryqemu-system-x86_64: failed to initialize kvm: No such file or directory
使用以下命令查看当前 linux in vmware 支不支持虚拟化,发现输出为空,即不支持。
1egrep '^flags.*(vmx|svm)' /proc/cpuinfo
检查了一下物理机 ...
内核堆概述
内核堆概述类似于用户态进程中的堆(heap),内核也有着自己的一套动态内存管理机制,为了方便这里我们同样将内核中动态分配的内存称为 “堆”。
Linux kernel 将内存分为 页→区→节点 三级结构,主要有两个内存管理器—— buddy system 与 slab allocator,前者负责以内存页为粒度管理所有可用的物理内存,后者则向前者请求内存页并划分为多个较小的对象(object)以进行细粒度的内存管理。
页→区→节点三级结构这是一张十分经典的 Overview ,自顶向下是
节点(node,对应结构体 pgdata_list)
区(zone,对应结构体 zone,图上展示了三种类型的 zone)
页(page,对应结构体 page)
页(page)Linux kernel 中使用 page 结构体来表示一个物理页框,每个物理页框都有着一个对应的 page 结构体:
区(zone)在 Linux 下将一个节点内不同用途的内存区域划分为不同的 区(zone),对应结构体 struct zone:
节点(node)zone 再向上一层便是节点——Linux 将内存控制 ...
内核下载与编译
内核下载与编译首先,我们需要下载并编译内核。
下载内核我们可以从 https://www.kernel.org 下载想要的内核。根据 https://www.kernel.org/category/releases.html,我们可以知道内核主要有以下几种类别:
Prepatch
Mainline 主线
Stable 稳定的
Longterm 长期
这里我们选择长期支持版。
下面为了方便介绍,我们使用 5.4 版本,内核开发者会一直支持这个版本到 2025 年 12 月份。进一步地,我们选择 5.4 的最新版本 5.4.98(2021 年 2 月记录)。为了加速,我们可以选择就近的源来下载内核,这里使用清华源:https://mirrors.tuna.tsinghua.edu.cn/kernel/。
12curl -O -L https://mirrors.tuna.tsinghua.edu.cn/kernel/v5.x/linux-5.4.98.tar.xz &&\unxz linux-5.4.98.tar.xz
验证内核签名为了防止内核被恶意修改,在发布内核时 ...
关于CTF-PWN获得shell后没有读取flag权限的问题
关于CTF-PWN获得shell后没有读取flag权限的问题前言在和学弟的一次日常交流中,发现linux权限设置有个很神奇的设置,可以用来出点有意思的题。主要思路是https://pwn.college/desktop里面的有趣设置
RWS一、rws权限的概念和特点rws是Linux文件权限中的一种,它是与set-UID和set-GID(SUID和SGID)特性相关联的权限。SUID和SGID是授予执行权限和组权限的一种特殊权限。SUID使得一个文件在被执行时拥有文件所有者的权限,而SGID则使得一个文件在被执行时拥有文件所在组的权限。SUID和SGID通常与可执行文件相关联,使得某些程序在执行时可以获得超级权限,比如管理员权限。
rws权限是rwx权限中的一种特殊形式,即在执行权限(x)的位置上,将其替换为s。rws权限的全称是set-UID、set-GID和可执行(即rwx权限)。使用rws权限赋予文件的执行者以文件所有者和文件所在组的权限,这使得这个文件可以在执行期间以这些权限运行程序。rws权限还是一种持久性的权限,即一旦授予某个文件,持续有效,不会因为文件移动或者复制而失效。 ...
免杀的几种方式
免杀的几种方式lnk钓鱼前言
lnk钓鱼方式很多,千奇百怪,这本身也是社工的其中一种,这里我们就简单说一下吧,lnk文件是Windows操作系统中的快捷方式文件,可以用来快速打开程序或文件夹。钓鱼原理是指黑客利用lnk文件的特性,制作一个看似正常的快捷方式文件,但实际上会执行恶意代码或链接,从而诱使用户点击并暴露个人信息或系统受到攻击。黑客可能会通过社会工程学手段诱导用户点击这些恶意lnk文件,从而实施钓鱼攻击
这里我们使用很简单分方式给大家说演示一下
这里可以看到我们把目标修改成了我们白加黑所在的位置,起始位置修改为白exe所在的文件夹里,我们这里使用现成的lnk,当然也可以自己生成一个,或者使用代码生成一个。
这里是自己去生成一个
这里是使用代码去生成一个快捷方式(指定目标和快捷方式生成在那个位置上去)接着我们运行一下这个快捷方式
也是成功上线了。当然这肯定不行,我们是xmind的图标但是没有打开xmind会被怀疑,我们可以使用vbs(脚本文件),将快捷方式的目标路径写为vbs文件。
这里我们就可以利用这个方式,先打开ximnd程序然后再睡10分钟,在打开我们的白文件或者 ...