House_of_cat
利用思路利用_IO_wfile_jumps函数中的_IO_wfile_seekoff函数,在转到调用_IO_switch_to_wget_mode函数进行攻击。 调用链:_IO_wfile_jumps ——> _IO_wfile_seekoff ——> _IO_switch_to_wget_mode(fp) gdb中结构如下:相比于House_of_emma,House_of_cat可以进行FSOP,具体操作为:改虚表指针vtable为_IO_wfile_jumps+0x10并结合_malloc_assert触发; 利用条件 任意写一个可控地址(如largebin_attack) 泄露libc和heap 触发: 调用exit或从main退出 puts、printf函数调用 _malloc_assert 在最后一步调用中:此时的rdi是我们传入的堆地址,那么此时我们泄露libc后,rdi、rax、rdx我们就都可以自主控制了,而利用这个 call [rax + 0x18] 汇编代码我们就可以执行我们控制的rax寄存器的地址。主要是这四句,也就是红框中汇编: rax1 ...
Vivotek远程栈溢出漏洞复现
环境搭建附件下载:http://download.vivotek.com/downloadfile/downloads/firmware/cc8160firmware.zip 固件解包binwalk -Me .pkg文件解包完后,发现文件系统存在路径为_CC8160-VVTK-0113b.flash.pkg.extracted/_31.extracted/_rootfs.img.extracted/squashfs-root 查找漏洞程序httpd:sudo find . -name httpd查看文件类型:file httpd32位的arm程序,小端,动态链接,没有符号表 运行服务将qemu-arm-static复制到当下目录;cp /usr/bin/qemu-arm-static . 由于是arm架构下的程序,我们不能直接运行,需要使用qemu模拟。依次输入以下指令,设置好运行环境: # 程序挂载sudo mount -o bind /dev ./devsudo mount -t proc /proc ./proc# 更换程序运行的根目录chroot . ./qemu-ar ...
Vulnhub靶机 DC-2
信息收集使用arp-scan -l 或者 nmap扫描到靶机地址: 使用namp -A -p- -v 192.168.15.134探测靶机开启的服务:==注意:使用-A会比较慢(但是看到的东西也多)==80端口:web7744端口:ssh 这里用-p-扫出来的端口多一个: flag1==由于中途将kali和靶机换成了桥接,所以靶机地址有所改变(192.168.0.131),但是无伤大雅==开放了80端口,我们在浏览器中访问一下界面。发现:当我们直接访问ip地址的80端口时会失败,IP地址会自动转化为dc-2的域名,所以可能是域名解析失败,我们尝试在/etc/hosts文件中添加一个ip地址的指向。 192.168.0.131 dc-2 成功访问:这是一个WordPress网站,同时发现了flag1,提示我们用爆破密码 flag2后台扫描以下:发现了登录界面: 进去看看: 因为我们已经知道这是WordPress站点,那么我们就用针对工具——wpscan。这是常用命令: wpscan --url ht ...
sql入门
信息查询数据库名的查询select database(); 数据库版本防火墙的绕过会涉及。 select version(); 判断字符型还是数字型注释符:“#” “–+” “%23” 方法1:使用 and 1=1 和 and 1=2 来判断 比如对于lab1,我们提交?id=1 and 1=1 或者?id=1 and 1=2都能正常显示界面,则不可能是数字型注入,即为字符型注入。对于lab1,我们提交?id=1 and 1=2都不能正常显示界面,则为数字型注入。 如果是数字型注入,那我们就不需要测试闭合方式,否则还需要判断闭合方式:' " ') ")。 方法2:使用 id=2-1 数字型是可以进行运算的,那么就相当于是id=1。 注意:最好不用 + ,在URL编码中通常会使用 + 或 %20 来代替空格,解码会把 + 编码为空格。所以有时我们也可以用 + 绕过空格限制。 对列数的判断unionselect * from users where id=1 union select 1,2,3; 增加union后面的数字,当报错说明超过最大列 ...