【iOS开发】IW2 新闻APP
keekkewy@qq.com
简介
功能介绍
展示视频
技术实现
视图结构
内容目录页
目录内容抓取
目录内容显示
下拉和上拉刷新
界面跳转
文章详情页
内容加载
导航栏的隐藏和显示
关于我们页
感谢评阅
简介功能介绍该APP是为学校信息中心(ITSC)官网设计的一个新闻客户端,包含“新闻动态”、”通知公告“、”信息化动态“、“安全公告”、“关于我们”五个板块,实时从官网上抓取新闻,支持上拉刷新,下拉加载新内容,异步加载图片和对图片、文字进行本地缓存等功能。
展示视频
技术实现视图结构
内容目录页
每个板块使用 TableView 组织内容,没个 cell 展示一则新闻的标题和发布时间。用户点击 cell 时根据此时 cell中的内容跳转至对应新闻的详情页。
目录内容抓取初始化 url
在目录页的 TableViewController 初始化时,根据该页面导航栏的标题设置该页面板块所对应的 url 前缀。
12 ...
【渗透测试】第十周 vulnhub-Cereal:1
网络攻防实战 第十次实验
邮箱:keekkewy@qq.com
2022年11月26日
靶机链接:https://vulnhub.com/entry/cereal-1,703/
一、实验目的获取靶机 root 权限和一个 root flag。
我们将使用以下攻击手段:
主机发现、端口扫描;
隐藏路径爆破;
域名绑定 IP;
隐藏域名爆破;
隐藏文件爆破;
解析 PHP 对象序列并进行命令注入;
反弹 shell;
利用 pspy 工具查看靶机上运行的所有进程;
通过链接文件利用靶机漏洞;
自定义 root 用户;
二、实验内容
kali: 10.0.2.15
靶机: 10.0.2.17
0x00. 准备工作
获取靶机 IP 并扫描其开放的端口以及个端口上对应的服务:
12sudo arp-scan -I eth0 -lsudo nmap -p- 10.0.2.17
发现开启了许多端口,经过对各个端口进行简单尝试之后。考虑从 ...
【渗透测试】第九周 vulnhub-DoubleTrouble:1
网络攻防实战 第九次实验
邮箱:keekkewy@qq.com
靶机链接:https://www.vulnhub.com/entry/doubletrouble-1,743/
2022年11月15日
一、实验目的本次的靶机比较特别,在获取第一个靶机的 root 权限后会在 root 主目录下发下另一个靶机的 .ova 文件,我们还需要将其下载到宿主机,继续尝试渗透。最终取得两个靶机的 root 权限以及第二个靶机上的两个 flag。
我们将使用到以下攻击手段:
主机发现;
端口扫描;
隐藏路径爆破;
隐写数据破解;
文件上传漏洞;
一句话木马脚本;
反弹 shell;
awk 提权;
sql基于时间的盲注(使用sqlmap);
脏牛漏洞提权。
二、实验内容
kali: 10.0.2.15
靶机: 10.0.2.14、10.0.2.16
0x00. 准备工作
获取靶机 IP 并扫描其开放的端口以及个端口上对应的服务:
12sudo ...
【渗透测试】第八周 vulnhub-EvilBox:One
网络攻防实战 第八次实验
邮箱:keekkewy@qq.com
2022年11月8日
靶机链接:https://vulnhub.com/entry/evilbox-one,736/
一、实验目的取得目标靶机的 root 权限并获得两个 flag。
我们将使用到以下攻击手段:
主机发现、端口扫描
隐藏路径爆破
参数名爆破
文件包含漏洞的发现以及利用
SSH 登入
私钥密码爆破
特定权限文件的发现
添加自定义用户记录
二、实验内容
kali: 10.0.2.15
靶机: 10.0.2.12
0x00. 准备工作
获取靶机 IP 并扫描其开放的端口以及个端口上对应的服务:
12$ sudo arp-scan -I eth0 -l$ sudo nmap -p- 10.0.2.12 -A
访问80端口发现是一个 Apache2 Debian 的默认页面,没有对渗透有帮助的信息:
0x01. 隐藏路径爆破
首先使用 dirsear ...
【渗透测试】第七周 vulnhub-Fawkes
网络攻防实战 第七次实验
邮箱:keekkewy@qq.com
2022年11月2日
靶机连接:https://vulnhub.com/entry/harrypotter-fawkes,686/
一、实验目的取得目标靶机的 root 权限并获得三个 flag。
我们将使用到以下攻击手段:
主机发现、端口扫描
FTP匿名登录
edb 调试程序
栈溢出攻击
tcpdump 流量分析
sudo 漏洞提权
二、实验内容
kali: 10.0.2.15
靶机: 10.0.2.11
0x00. 准备工作
获取靶机 IP 并扫描其开放的端口以及个端口上对应的服务:
123$ sudo arp-scan -I eth0 -l$ sudo nmap -p- 10.0.2.11$ sudo nmap -p21,22,80,2222,9898 -sV 10.0.2.11 -A
发现两个比较特殊的端口:
21 - ftp 服务并允许匿名登录 ...
【iOS开发】iw01 科学计算器
iOS assignment 1: Calculator App.
姓名:可弟WZ Kekwy
邮箱:keekkewy@qq.com
用 swift & storyboard 实现一个计算器APP(包括科学计算器)。
项目仓库:https://github.com/Kekwy/iwork1-Calculator
一、界面设计
静态布局
0x0. StackView大体分为上下两部分,上方为计算器的显示区域,下方为按键区域。
0x00. 主要约束1234Stack View.top = Safe Area.topStack View.leading = Safe Area.leadingSafe Area.bottom = Stack View.bottomSafe Area.trailing = Stack View.trailing
使当前控件大小与父控件大小一致,即填充满父控件。
0x01. 显示区域(View ...
【渗透测试】第五周 vulnhub-
网络攻防实战 实验报告
网络攻防实战 第七次实验
邮箱:keekkewy@qq.com
2022年10月19日
靶机链接:
目录[TOC]
一、实验目的获取靶机中的flag,并取得目标靶机的root权限。
我们将使用到以下攻击手段:
主机发现、端口扫描
查看 web 源码
编/解码
注入命令
反弹 shell
代码审计
搜索漏洞信息
利用 express-fileupload 的代码漏洞
本地提权
二、实验内容
kali: 10.0.2.15
靶机: 10.0.2.9
0x00. 准备工作
发现靶机IP并对其进行端口扫描,查看各端口所运行的服务类型:
发现目标靶机的80端口和8000端口上都运行了一个web应用。
首先通过浏览器访问靶机80端口上的 web 应用:
出现 “Data & Time” 字样,无明显线索。查看源码,发现一段 JavaScript 代码:
使用 C ...
【渗透测试】第一周 vulnhub-y0usef
第一周
可弟WZ
主页:blog.kekwy.com
邮箱:keekkewy@qq.com
2022年9月27日
一、实验准备靶机:y0usef
下载链接:https://www.vulnhub.com/entry/y0usef-1,624/
攻击机:kali
二、实验目标取得目标靶机的root权限和2个flag。
三、实验内容
在VirtualBox中同时启动kali攻击机和第三周靶机,并保证两者位于同一局域网下。
在kali中执行以下指令进行局域网主机发现:
1$ sudo arp-scan -I eth0 -l
扫描结果如下:
可以推断1出靶机 地址为 10.0.2.5 。
1: 推断方式很多,可以挨个扫描端口,可以控制变量(不开靶机扫描一次,启动靶机后再扫描一次),可以对比扫描结果与靶机的mac地址,也可以是经验之谈。
在kali中执行以下指令扫描靶机的端口状态:
1$ sudo nmap -p- 10.0.2.5
...
集合类与I/O操作
数组的长度是固定的,集合的长度是可变的。
I. Collection接口
collection 接口时层次结构中的根接口,构成其的单位称为元素。
常用方法:
方法
功能描述
add(E e)
将指定的对象添加到该集合中
remove(Object o)
将指定的对象从该集合中移除
isEmpty()
返回boolean值,用于判断当前集合是否为空
iterator()
返回在此Collection的元素上进行迭代的迭代器,用于遍历集合中的对象
size()
返回int型值,获取该集合中元素的个数
通过迭代器遍历:
1234567import java.util.*;Collection<String> list = new ArrayList<>(); //将List实现类向上转型Iterator<String> it = list.iterator(); //创建迭代器while(it.hasNext()) { //do something String str = (String) i ...
类的高级特性与异常处理
I. Java类包
类名冲突:
任何类与接口都需要隶属于某一个类包。可以通过将两个同名类定义在不同的类包中解决类名冲突的问题。
类的路径:
同一个类包中的类相互访问时,可以不指定包名;
同一个包中的类不必存放在同一个位置,只要将CLASSPATH分别指向这两个位置即可。
指定包与导入包:
将 package 表达式作为文件中的第一行非注释代码,java包名必须全部使用小写字母。
1package 包名;
导入包:
123import 包名.*import 包名.类名import 包名.静态方法名
tips:
使用 import 关键字指定一个包中的所有类时,并不会指定这个包的子包中的类,如需使用需要对子包作单独引用。
II. final 关键字
变量:
修饰常量变量;
对象引用被 final 修饰后无法使其指向另一个对象;
Java中定义全局变量,通常使用 public static final 修饰,是能在定义时被赋值。
方法:
被 final 修饰的方法不能被重写;
private 方法隐式被指定为 final 类型。
类:
被修饰的类不能被继承。
I ...