这几天写了南邮的web题目,都比较基础,但是对我这个小白来说还是收获蛮大的。可以借此总结一下web题的类型
一,信息都藏在哪
作为ctf题目,肯定是要有些提示的,这些提示有时会在题目介绍里说有时也会隐藏在某些地方。
1,源代码,这是最最最常见的。
2,http head头中,这个一般都会提下 ‘头’ 什么的。
3,非常规提示,就比如这个:
如果第一次做ctf题目,不知道还有这些套路,一般不会往这个方面想。
二,302自动跳转
在打开某个链接时,会跳转向另一个链接,而错过重要信息。
1,使用burpsuite一步步拦截释放,这样不会错过中间跳转。
2,如果网页使用的是js跳转,可以试试禁用js.
三,访问来源判断
这个也是经典题目了,通过判断ip,后者来源网址。可以总两个方面伪造
1,http referer头,这个头指示的是请求从哪个网站来
2,X-Forward-For头:这个头指示请求的ip
四,修改特定信息
这也是很基础的,主要有几个方面
1,GET/POST 表单的内容,包括键与值
2,修改HTTP header,多在cookie上有问题
五,php弱类型比较
1,字符串与数字比较:这个与mysql的规则比较像,开头纯字母的字符串会被转化为0,
开头有数字的会被转化为开头的数字。
比如:‘123abc’==123
'abc123'==0
这两个都成立
2,科学计数法:0e开头的字符串会被认为值科学技术法形式,但转化成科学计数法有时
0成10的若干次方,都是相等的。
‘0e1234560’=='0e789456' 成立
比较明显的是在MD5加密上,如果两个字符串加密后都以0e开头,再比较他们的MD5值就会认为相等
也就会认为两字符串相等。
比如:md5('240610708')==md5('QNKCDZO')
3,intvar() 转换 这个函数可以把字符串转换为数字,规则与第一条类似
六,上传截断
参考一篇博客 https://blog.csdn.net/zpy1998zpy/article/details/80545408
七,sql注入
这个平台上没有特别在sql注入上难为同学们,也是基本题型
还是参考另一篇博客 https://blog.csdn.net/zpy1998zpy/article/details/80517626
八,十六进制绕过
十六进制在于数字比较时,会被转化为10进制,但在字符串操作时还是16进制形式。
这里的绕过就是传入 54975581388的16进制表示,就可通过对每一位ascii码的检查。
九,其他的小知识点
1,javascript aaencode 各种表情符 ,就是特征
解码:在线解码 https://tool.zcmzcm.org/aadecode
有个小问题,如果网页直接打开为乱码,就右键另存为,保存到本地用记事本打开,再去解码就行了。
2,JSF*ck 编码 各种括号加号
在线解码 http://www.jsfuck.com/
3,.swp文件,如果有提示就可以查看 .原文件名.swp
比如:直接访问 http://站点/ .index.php.swp 可以看到提示内容
4, .bash_history 文件 同样的,如果有提示,就可以试着访问这个文件,
5,序列化与反序列化,主要还是要懂基本含义与格式,然后调用 序列化与反序列化函数即可
这是php反序列化那题生成playload的代码<?php
class just4fun {
var $enter;
var $secret;
}
$o = new just4fun();
$o->enter = &$o->secret;
echo serialize($o);
?>
如果会调用函数,就可以操作序列化和反序列化,所有重点还是对题目服务器代码的绕过技巧。
————————————————
原文链接:https://blog.csdn.net/zpy1998zpy/java/article/details/80547970