- 2024年云曦网络安全实验室2024春季学期开学考复现Writeup
2301_82257383
程序员web安全android安全
构造的payloa为http://172.16.17.201:50183/Gentle_sister.php/?my_parameter[]=1可以直接访问也可以Hackbar工具传参。通过使用my_parameter[]=1,相当于是告诉服务器,我们在传递的是一个包含1的数组而非数字或字符串,在这种情况下,$_GET[‘my_parameter’]得到的将是一个数组,而不是一个单一的值。原本脚本
- vulnhub靶机-DC2-Writeup
含日
靶机linux安全靶机渗透测试安全漏洞
0x01部署靶机地址:https://www.vulnhub.com/entry/dc-2,311/DESCRIPTIONMuchlikeDC-1,DC-2isanotherpurposelybuiltvulnerablelabforthepurposeofgainingexperienceintheworldofpenetrationtesting.AswiththeoriginalDC-1,i
- ctf-杂项-编码分析-Morse编码
go_to_hacker
ctfctf
通信中的编码:Morse编码,(国际摩尔斯电码)ctf:题目:嘀嗒嘀嗒嘀嗒嘀嗒时针它不停在转动-----.-.....嘀嗒嘀嗒嘀嗒嘀嗒小雨它拍打着水花-.-.----...writeup:通过摩斯密码表自己一一对应查找,也可以同网上在线工具直接计算http://www.zhongguosou.com/zonghe/moErSiCodeConverter.aspx或者:http://rumkin.c
- 【web安全】从2022中科大hackgame web中学习pdflatex RCE和python反序列化
热心网友易小姐
pythonweb安全前端
ctf比赛地址:https://hack.lug.ustc.edu.cn大佬博客里wp写的很清楚了,官方wp也写的很好,我比不过大佬,只能把基础多讲一些(大佬在tttang把wp全发了T0T)官方wp:https://github.com/USTC-Hackergame/hackergame2022-writeups大佬全WP:https://miaotony.xyz/?utm_source=tt
- 2018-10-08-Vulnhub渗透测试实战writeup(5)
最初的美好_kai
老规矩,直接上nmapnmap-p--A-sV-Pn10.10.10.145结果如下:StartingNmap7.01(https://nmap.org)at2018-10-0816:50CSTNmapscanreportfor10.10.10.145Hostisup(0.0082slatency).Notshown:65532closedportsPORTSTATESERVICEVERSION8
- 实验吧CTF密码学Writeup-古典密码Writeup
syxvip
古典密码分值:10来源:北邮天枢战队难度:易参与人数:6803人GetFlag:2507人答题人数:2791人解题通过率:90%密文内容如下{796785123677084697688798589686967847871657279728278707369787712573798465}请对其进行解密提示:1.加解密方法就在谜面中2.利用key值的固定结构格式:CTF{}密文全是数字,ascll码
- 《SQLi-Labs》05. Less 29~37
永别了,赛艾斯滴恩
lessandroid前端
title:《SQLi-Labs》05.Less29~37date:2024-01-1722:49:10updated:2024-02-1218:09:10categories:WriteUp:Security-Labexcerpt:HTTP参数污染,联合注入、宽字节注入。comments:falsetags:top_image:/images/backimg/SunsetClimbing.png
- 日志题writeup
hades2019
1、既然是日志分析,首先打开日志,access.log,摘取片段:id=1%27%20aNd%20%28SelECT%204235%20fRom%20%28SelECT%28sleEp%281-%28If%28ORd%28MId%28%28SelECT%20IfNULL%28CaST%28%60flag%60%20aS%20nChar%29%2C0x20%29%20fRom%20sqli.%60f
- cakectf-2021-hwdbg - “/dev/mem“
goodcat666
pwn_cve_kernellinuxpwn
出题意图是了解"/dev/mem"这里是/dev/mem详解文档题目给出了特权进程/bin/hwdbg修改/dev/mem进行提权/$ls-lah/bin/hwdbg-r-sr-xr-x1rootroot25.6KAug2803:18/bin/hwdbg下面有两种方式进行提权修改内核数据进行提权https://github.com/u1f383/writeup/blob/main/CakeCTF_
- CTFHub-Web-密码口令 WriteUp
曾小健_0532
一、弱口令 1.题目内容 2.解题思路 使用burpsuite进行字典爆破 3.解题过程 首先抓包 使用intruder模块进行爆破 得到正确的口令,CaptureTheFlag!二、默认口令 1.题目内容 2.解题思路 网上查找该产品的默认用户名和密码 3.解题过程 查询到默认用户名为eyougw,密码为admin@(eyou),成功登陆后,CaptureTheFlag!
- N1CTF Junior 2024 Web Official Writeup(Nu1L Team组织的官方纳新赛事,旨在选拔优秀人才加入Nu1L Team,可是小北是大二生,抱着玩玩的心态来的)
Stitch .
CTF我的大学笔记Web前端androidwebweb安全CTFN1CTF
Nu1L-CTF大本营-网络安全竞赛平台-i春秋(ichunqiu.com)https://www.ichunqiu.com/competition/team/15赛事举办方信息Nu1LTeam组织的官方纳新赛事,旨在选拔优秀人才加入Nu1LTeam作为国内TOPCTF战队,Nu1LTeam自2015年10月成立以来,斩获了国内外众多赛事冠军以及闯入DEFCONCTF总决赛,这得益于Nu1L每一位
- ISCTF-Reverse-WriteUP
shangwenDD
赛后题解网络安全算法安全c++pythonc语言
crakme[Shangwendada,wakappxcdone]法1其实应该本来想考的是upx壳,但是似乎出题人没想到可以直接运行的问题…法2首先查壳脱壳发现脱不了放入010Editor查看并改特征码载入ida里面验证flag正确mfx_re[Shangwendadadone]这玩意瞅着真熟悉UPX老哥,改了特征码修复文件file_path='mfx_re'#替换成你的二进制文件路径withop
- HCTF2017-Web-Writeup
dengzhasong7076
php数据库python
boringwebsite先通过扫描得到:http://106.15.53.124:38324/www.zip";echo"flagishctf{whatyouget}";error_reporting(E_ALL^E_NOTICE^E_WARNING);try{$conn=newPDO("sqlsrv:Server=*****;Database=not_here","oob","");}catc
- IMF_1(VulbHub)_WriteUp
沫风港
综合渗透_靶场通关文档网络安全
目录1、主机探测2、web渗透发现flag1发现flag2拼接imfadministrator目录收集用户名代码审计之弱类型绕过发现flag3进入IMFCMS漏扫测试尝试跑sqlmap发现异常数据发现flag4继续访问uploadr942.php页面waf绕过(.htaccess绕过)发现flag5反弹shell3、内网渗透查找agent查看开启的端口情况查看/usr/local/bin下的文件敲
- CewlKid(VulnHub)_Writeup
沫风港
综合渗透_靶场通关文档网络安全
CewlKid(VulnHub)文章目录CewlKid(VulnHub)1、前期信息收集nmap扫描①存活主机②端口扫描、操作系统③漏洞探测④tcp、udp扫描gobuster目录爆破dirb目录爆破2、Web渗透部分思路一:SitemagicCMS漏洞库查询思路二:常规web渗透手法①信息收集②密码爆破,尝试进后台③上传webshell④拿下普通权限终端3、内网渗透部分检查ip发现拿到的shel
- AUSTCTF2023 WriteUp
乔不思-
python网络安全
Basicbasic1C语言基础,没啥好说的。。basic22022蓝桥杯真题,其实搜一下答案就出来了#includeconstintN=2022,k=10;longlongpd[N+1][k+1]{1};intmain(){for(inti=1;i=j)pd[i][j]=pd[i-j][j]+pd[i-j][j-1];printf("%lld",pd[N][k]);}basic3右键查看网页源代
- Defcon 2018 Qualify: Easy Pisy writeup
可爱多多白
非专业知识积累安全漏洞密码学区块链
文章目录Defcon2018Qualify:EasyPisy1.SourceCode2.Writeup3.Info4.AnalysisofAuthor4.1janmasarik4.2nneonneo(RobertXiao)4.3MarcStevens4.4ElieBursztein(Google)5.语言中的签名函数5.1php5.1.1[standardslibrary](https://www
- PICTURE writeup By K龙
Kayden_龙邵仁
PICTUREFromCISCN-2018-QualsMISC杂项下载附件,得到一图片图片用winhex打开,发现zlib文件头用binwalk把文件分离,得到一个加密压缩文件及一个文本文件将文件转化为十六进制,发现文件具有ascii编码特征用kali解码后,文件具有base64加密特征,二次解码后把文件转化为zip文件压缩文件打开后,文件破损,附有压缩文件密码提示这个位置的提示前期以为是需要用p
- 第六届“强网杯”全国网络安全挑战赛-青少年专项赛
学不会pwn不改名
web安全安全
选拔赛可以看WP|第六届强网杯青少赛线上赛WriteUp_青少年ctf的博客-CSDN博客科普赛-网络安全知识问答一、单项选择题1、以太网交换机实质上是一个多端口的()。A、网桥B、路由器C、中继器D、集线器您的答案:A标准答案:A2、()是传统密码学的理论基础。A、计算机科学B、物理学C、量子力学D、数学您的答案:D标准答案:D3、IP服务的主要特点是()。A、不可靠、面向无连接和尽最大努力投递
- XCTF:warmup[WriteUP]
0DayHP
网络安全
Ctrl+U查看页面源码Document发现注释处的source.php,复制到地址栏进入获取新的一堆php代码"source.php","hint"=>"hint.php"];if(!isset($page)||!is_string($page)){echo"youcan'tseeit";returnfalse;}if(in_array($page,$whitelist)){returntrue
- NSSCTF Round17 Reverse & Crypto WriteUp(全)
Tanggerr
安全CTFNSSCTF
NSSCTFRound17Reverse&CryptoWriteUp(全)Reverse一.snakego1.19写的,直接找到main函数,下断点动调以下为输入函数(输入wasd):for(i=0LL;i\nv01dbnssst(intFTC[],intlenggggggg){\ninti,j,SSN;\n')print('ThisisCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
- XCTF:Normal_RSA[WriteUP]
0DayHP
网络安全
从题目中获取到两个文件flag.enc内容是通过rsa加密了的密文pubkey.pem是rsa公钥,加密者利用这个文件对flag原文进行了加密如果对rsa加密算法不了解的可以补一下教学视频数学不好也能听懂的算法-RSA加密和解密原理和过程_哔哩哔哩_bilibili使用openssl对公钥文件算出N、E的值opensslrsa-pubin-text-modulus-inpubkey.pemE=65
- 2022巅峰极客WriteUp By EDISEC
EDI安全
CTF-Writeupweb安全安全网络安全
2022巅峰极客WriteUpByEDISECWebbabywebezWebCryptopoint-powerstrangecurvePwnGiftsmallcontainerhappy_note决赛开端:strangeTempreturenodesystemgcdbabyProtocol招新Webbabyweb提示Paddingoracle直接随便在⽹上找个脚本搓了半天没什么反应,后来直接⽤pa
- 第一届“龙信杯”电子数据取证竞赛Writeup
是toto
python网络安全数据分析开发语言php
个人思路仅供参考~有问题可以联系我或者评论文章目录移动终端取证1.请分析涉案手机的设备标识是_______。(标准格式:12345678)2.请确认嫌疑人首次安装目标APP的安装时间是______。(标准格式:2023-09-13.11:32:23)3.此检材共连接过______个WiFi。(标准格式:1)4.嫌疑人手机短信记录中未读的短信共有______条。(标准格式:12)5.嫌疑人检材手机在
- 2024獬豸杯完整Writeup
是toto
mysqlforensic电子取证网络安全数据分析
文章目录手机手机基本信息-1、IOS手机备份包是什么时候开始备份的。(标准格式:2024-01-20.12:12:12)手机基本信息-2、请分析,该手机共下载了几款即时通讯工具。(标准格式:阿拉伯数字)手机基本信息-3、手机机主的号码得ICCID是多少。(标准格式:阿拉伯数字)手机基本信息-4、手机机主登录小西米语音的日期是什么时候。(标准格式:20240120)地图数据-1、请问嫌疑人家庭住址在
- CTF新生赛之Writeup
sh1kaku_
CTF密码学phpweb
CTF新生赛之Writeup作为零基础的新生,也是在开学后才了解了CTF,感觉本次新生赛中颇有收获,也是应赛制要求,故写下这份WP,以纪念本人的第一次CTF竞赛。回顾和感想回顾本次的新生赛,难度合适,自己从对CTF一无所知到入门再到学习相关知识,确实有很大的进步;从做题的过程中来看,期间有欣喜也有挫败:欣喜的是通过自己的努力将一道初看起来没思路的题慢慢解答出来,在提交flag的那一刻确实很激动;但
- 第十届南京邮电大学网络攻防大赛(NCTF 2021)writeup
渗透测试中心
CTF网络javaspringboot开发语言后端
WebX1cT34m_API_SystemAuthor:wh1sper题目描述:在API安全的新时代,安全圈迎来风云变幻。掀起巨浪的你?只手遮天的你?选择保护还是放弃你的曾经的伙伴?target:http://129.211.173.64:58082/附件链接:https://wwn.lanzoui.com/iUoDwwyfdxchint1:thehiddenAPItobypass403hint2
- NahamCon CTF 2022 pwn 部分writeup
z1r0.
buuctf题目pwn
NahamConCTF2022pwn部分writeupBabierstepsret2textfrompwnimport*context(arch='amd64',os='linux',log_level='debug')file_name='./z1r0'li=lambdax:print('\x1b[01;38;5;214m'+x+'\x1b[0m')ll=lambdax:print('\x1b[
- 2023年春秋杯网络安全联赛冬季赛 Writeup
末 初
GameWriteups2023春秋杯春秋杯冬季赛
文章目录Webezezez_phppicupMisc谁偷吃了外卖modules明文混淆PwnnmanagerbookReupx2023CryptoCFisCryptoFaker挑战题勒索流量Ezdede可信计算Webezezez_php反序列化打redis主从复制RCE:https://www.cnblogs.com/xiaozi/p/13089906.html";}publicfunction_
- 攻防世界——answer_to_everything-writeup
_Nickname
everythingpythonjava
__int64__fastcallnot_the_flag(inta1){if(a1==42)puts("CipherfromBill\nSubmitwithoutanytags\n#kdudpeh");elseputs("YOUSUCK");return0LL;}kdudpeh这个东西,根据题目提示sha1加密importhashlibflag='kdudpeh'x=hashlib.sha1(f
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http