第一关Brute Force
看题目我们知道,这是要我们用暴力破解的方法来解题,于是我们想到用BurpSuite这个工具来进行暴力破解。
服务器端核心代码
insset函数用来检测变量是否设置,并且不是 NULL。该函数返回的是布尔类型的值,即true/false),没有任何的防爆破机制,且对参数username、password没有做任何过滤,存在明显的sql注入漏洞。
mysql_query() 函数执行一条 MySQL 查询。mysql_query() 对SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。
or die表示如果前一条语句是false则会直接退出程序。
mysql_num_rows() 函数返回结果集中行的数目。语法:mysql_num_rows(data),data,必需,结果集。该结果集从 mysql_query() 的调用中得到。
mysql_result() 函数返回结果集中一个字段的值。如果成功,则该函数返回字段值。如果失败,则返回 false。mysql_result(data,row,field)。data必需,规定要使用的结果标识符。该标识符是 mysql_query() 函数返回的。row必需。规定行号。行号从 0 开始。field可选。规定获取哪个字段。可以是字段偏移值,字段名或 table.fieldname。如果该参数未规定,则该函数从指定的行获取第一个字段。
首先用Burpsuite对登录进行抓包
然后对登录名和密码进行爆破,这里要对密码加上$$,表示对这个进行爆破。
然后对密码进行爆破,这里我加的是本地的字典
然后可以看到有一行的长度与其他不同,可以知道这就是我们要的密码了
所以用户名是admin,密码是password。