网络编程实现
基础知识osiosi模型分为七层,由应用层,表示层,会话层,传输层,网络层,数据链路层,物理层组成。应用层主要是使用如浏览器这样得网络通信应用时,使用有关应用的协议,为应用程序提供服务。表示层为数据格式进行转换,数据进行加密(操作系统使用的数据格式与网络通信中所使用的数据格式并不相同,需要进行数据格式的转化保证数据的安全所以进行加密)。
tcp/iptcp/ip协议为四层,应用层(对应osi的应用层,表示层,会话层),传输层,互联网层(网络层),网络接口层(数据链路层)
ip(Internet Protocol)网络之间互联的协议是非常重要的网络协议,目前整个互联网都是基于IP的。IPV4使用32位二进制地址。
端口(port)可以直接认为是设备与外界交流的出口。端口可以分为虚拟端口和物理端口,虚拟端口是计算机内部或交换机路由器内的端口。例如计算机的80端口(http协议)和21端口(ftp文件传输协议服务)和23端口(Telnet远程登录服务端口)。
socket套接字tcp/ip网络环境下应用程序和底层通讯驱动程序之间的运行的开发接口,可以将程序和具体 ...
网络渗透基础(完成更新)
渗透基础第二节课(11月6日)基础知识inet:网络接口的ip地址;ip地址由32位二进制数组成,前三位是网络部分,第四位用于标识特定的主机。
netmask:网络接口的子网掩码;子网掩码跟ip地址进行与的操作,来进行确定arp表的目的地址。
broadcast:网络接口的广播地址;broadcast的第四位ip地址,一般为255,表示广播消息,向着同一子网下所有主机进行消息的发送。
MAC地址(又称硬件地址或者是物理地址):显示网络接口的物理地址;
up/down:启用/禁用指定的接口
任务1、Kali虚拟机采用桥接模式;物理机连接Guet-WiFi,Kali中查看网络配置并截图,能获得IP地址吗?2、Kali虚拟机采用桥接模式;物理机连接手机热点,Kali中查看网络配置并截图,能获得IP地址吗?3、对于1、2的结果,进行总结分析。注:网络配置发生变化,建议重启网卡(操作命令见PPT)
任务一当前虚拟机使用了桥接模式,即虚拟机作为局域网中的一个独立主机,在物理机连接GUET_WIFI的情况下,先使用在物理机使用ipconfig命令查找主机的ip地址。
在虚拟机中 ...
HOOK程序实现弹窗(持续更新)
HOOk流程HOOK程序,本质上是修改程序的执行流程(思路类似于pwn中的构造ROP链),通过修改程序的执行流程,可以将程序中的某些代码指令替换成自己想要的指令。
123456789#include <stdio.h>1.(define n 0&&1) //1.处进行代码添加int main(){2.(不添加代码)//2.处进行代码添加 printf("%d\n",n==n); return 0;}//c++中==运算符的优先级高于&&运算符(类似于SQL注入操作),0&&1==0&&1中1和0先进行==的判断,后从左到右进行&&的操作。//如果说要在上段代码中的1.2.处添加代码,使得程序可以输出0,也就是n!=n。原视频可以去看b站老哥的视频。https://www.bilibili.com/video/BV1fw411G741
上述问题中的思路是,对程序中原有的代码不进行操作,而是通过添加恶意代码对程序的逻辑漏洞进行利用。对于HOOK一 ...
PE文件结构解析(持续更新)
PE文件PE文件结构MS-DOS存根MS-DOS存根是放置在EXE映像之前,MS-DOS存根标识MS-DOS下运行的有效程序。链接器会默认在存根的位置放置一个默认存根标识程序无法在DOS系统下运行[用户可以在STUB链接器选项来指定不同的存根]。在0x3C的位置,存根存放了距离PE签名的的偏移量。stub的范围由MZ头的结构体中成员e_lfanew来决定。
PE签名根据MS-DOS存根在0x3C位置存放的偏移量(本次的示例exe文件是08 01 00 00),可以找到PE签名的部分(4字节),PE签名(50 45 00 00)(由于文件的存储为小端序所以直接读取的字节需要调整顺序为大端序进行阅读)查看偏移量为0x108的位置,就可以查看PE文件的签名。
PE签名的分为代码和数据两部分,代码部分用于执行输出语句,数据部分存储了输出语句的数据。使用winhex将这部分数据进行提取(直接放到IDA以16进制解析也可以),使用16进制的反编译引擎进行解析(https://shell-storm.org/online/Online-Assembler-and-Disassembler)。通过 ...
pikachu靶场(持续更新中)
pikachu暴力破解基于表单的暴力破解直接使用bp进行抓包,对账号密码进行字典攻击,返回长度与其他值不同的为正确的回显。
验证码绕过on server由于服务端进行验证码检测,所以对输入一个正确的验证码后抓包对账号密码进行字典攻击,不对验证码进行修改。(这种情况只存在于服务端校验时不对验证码设置时间限制或者同一验证码使用次数)
on client网页前端对输入的验证码进行比较(发送数据流量包是在前端检验之后进行发送,而且由于服务端对验证码没有检验,所以在抓到正确的流量包后进行重放是可以不发送验证码这一项)所以在一次的正确输入验证码后,进行抓包,对账号密码进行字典攻击。
token防爆破网页前端只有账号密码输入,查看源码可以发现由隐藏的值token(Token是首次登陆时由服务器下发,作为客户端进行请求的一个令牌,当交互时用于身份验证的一种验证机制,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码),token值会从服务器返回,需要每一次重新从返回的数据中获取,所以需要使用pitch ...
upload-labs(持续更新)
upload-labsPass-01
代码在前端对上传的文件进行检测,代码设置了allow_ext变量对允许上传的文件进行了限制,上传除了png jpg gif以外的文件都不可以被上传。但是代码在前端检验,所以只需要绕过前端,后端对上传文件不进行检测,将写好的phpinfo代码后缀改为png允许上传的格式进行上传,之后进行抓包将发送的文件后缀改为php,使得phpinfo.php被成功上传。在upload文件下访问phpinfo.php.
Pass-02
直接上传phpinfo.php,上传失败。查看网页前端代码,发现有一个checkFile函数的返回值,并且只出现了一次,猜测为服务端回传的。所以上传文件phpinfo.php,将contect-type()的格式改为image/jpeg,成功上传文件。根据源码分析允许上传的文件格式为png jpeg gif 文件,并且为服务端检测。
成功上传,可以访问phpinfo.php。
Pass-03
在服务端进行检测,根据提示禁止上传.asp|.aspx|.php|.jsp后缀文件。抓包上传文件,设置文件的格式为jpeg格式, ...
DeDeCMS v5.7 SP2 正式版 前台任意用户密码修改
DeDeCMS v5.7 SP2 正式版 前台任意用户密码修改复现过程环境搭建使用PHPSTUDY,选择使用一键启动中的WNMP选项,进行网站的创建。在网站项中进行网站创建,对域名进行设置(任意设置),其他设置选项默认选项。
环境搭建使用PHPSTUDY和DEDECMS的镜像进行搭建,在环境安装时数据库密码使用对应的默认密码,才可以正常进行安装,其他选项为默认选项(不进行数据库密码的配置会导致在第三步的安装中报错”数据库或者登录密码不正确”)。
创建后进入dede的网站根目录放入DEDECMS的镜像文件,根目录在PHPSTUDY的安装路径的WWW文件夹下进行存放。
在配置好网站后,需要进入后台对会员注册的权限进行开启,不然无法直接注册用户(不对注册会员权限进行开启,无法跳转到注册界面)。会员注册功能在”系统”选项,”会员设置”选项中进行设置。
漏洞利用
对账号进行注册(笔名也需要进行设置,此处没有设置后的截图),安全问题不进行设置(漏洞的点就在于网站对安全问题没有进行判断)。注册账号后在需要在后台进行对用户的审核状态进行修改为”正常使用状态”,不然无法进行对空间的查看,也无法 ...
对guestbook的xss攻击和对DVWA的SQL攻击
guestbook环境搭建使用Windows Server 2003虚拟机进行环境的搭建
1.首先配置虚拟机,默认账号和密码:administrator jlcssadmin(不使用硬件升级功能,使用该功能会导致虚拟机内无法使用鼠标只能使用键盘作为输入信号)。
攻击原理攻击实现以及结果DVWA环境搭建
攻击原理
攻击实现以及结果
使用windowsAPI进程进程检索
所使用的Windows API 原型CreateToolhelp32Snapshot 函数 (tlhelp32.h)CreateToolhelp32Snapshot API功能是获取指定进程以及这些进程使用的堆,模块和线程的快照
HANDLE CreateToolhelp32Snapshot( [in] DWORD dwFlags,//要包含在快照中的系统部分 [in] DWORD th32ProcessID//系统进程标识符);
OpenProcess函数(processthreadsapi.h)HANDLE OpenProcess(//打开现有的本地进程对象。 [in] DWORD dwDesiredAccess,//对进程对象的访问,参数是一个进程的访问权限。具体的参数可以查看处理安全性和访问权限 - Win32 apps | Microsoft Learn [in] BOOL bInheritHandle,//一个BOOL值 使用TRUE,进程创建的子进程会继承这个句柄 ...
<软件安全技术> 修改返回地址
任务#include <stdio.h>#include<string.h>#include<stdlib.h>void Attack(){printf(“Hello!: - ) : - ) : - )\n”);exit(0);}void fun(){ char password[6] =”ABCDE”; char str[6]; FILE *fp; if(!(fp=fopen(“password.txt”,”r”))) { exit(0); } fscanf(fp,”%s”,str); str[5]=’\0’; if(strcmp(str,password)==0) printf(“ok.\n”); else printf(“no.\n”);}int main(){ fun(); return 0;}我们的目的是使该代码中的Attack()函数执行。
思路通过分析main函数可以知道现在是不会执行Attack函 ...