wargame.kr login_filtering

题目链接 wargame  


$id=mysql_real_escape_string(trim($_POST['id']));

$ps=mysql_real_escape_string(trim($_POST['ps']));

$row=mysql_fetch_array(mysql_query("select * from user where id='$id' and ps=md5('$ps')"));

if(isset($row['id'])){

if($id=='guest'||$id=='blueh4g'){

echo"your account is blocked";

}else{

echo"login ok"."";

echo"Password : ".$key;

}

题目可以查看源代码如上,意思是说要在用户密码表里找到记录,而且用户名不能是guest和blueh4g 。刚开始以为是一条SQL注入题目,后来发现有mysql_real_escape_string 防护了。百思不得其解。难度是弱口令题目?

查看网页源码发现贴出了guest/guest 账号密码,但是PHP又限制了id 不能是guest 怎么办?答案是填写 GUEST和guest就可以过了。 原来MySQL查询的= 是不区分大小写的,本题考察的其实是MySQL。做个试验吧:

mysql> select * from users where name="GUEST" and password = 'guest';

+-------+----------+

| name  | password |

+-------+----------+

| guest | guest    |

+-------+----------+

1 row in set (0.00 sec)

mysql> select * from users where name="Guest" and password = 'guest';

+-------+----------+

| name  | password |

+-------+----------+

| guest | guest    |

+-------+----------+

1 row in set (0.00 sec)

总结:

1)做WEB题目第一点还是要看网页本身源码、还有包头;很多时候注释里会给提示。

2)MySQL 查询不区分大小写

3)mysql_real_escape_string 可以预防SQL注入,但是要注意编码。宽字节绕过漏洞

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 语 句 功 能 数据操作 SELECT——从数据库表中检索数据行和列INSERT——向数据库表添加新数据行DELE...
    戰敭阅读 5,232评论 0 53
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,790评论 18 399
  • 第1章 初涉MySQL 1.1 MySQL文件 (1)MySQL目录结构 (2)MySQL配置向导文件(安装后配置...
    凛0_0阅读 994评论 1 0
  • 点击上方蓝字关注 事情是这样的。 北京时间2017年8月31日下午5时左右,朝阳区发生一起“恶性伤人”事件,一名成...
    被封号了莫名其妙阅读 403评论 0 4
  • 1 其实,我心里很不喜欢小周。 当然,他面试过了,说明这个人还不笨。我坐着沙发椅上,冲着他一脸的笑。 眼前的小周,...
    昕城阅读 253评论 9 7

友情链接更多精彩内容