SQL注入、XSS漏洞简单复现与修复
SQL注入
复现
环境:
Apache 2.4.39
MySQL 5.0.96
PHP 5.5.9
代码:
Connect.php用于连接已有的数据库
简陋的sql漏洞网站就搭成了
抓包进行post传参,检测是否存在漏洞
验证
username= 1' or 1>0#&password=1,成功登入,说明存在注入漏洞
username=Dumb'order by 3#&password=Dumb,三个注入点
username=1' union select 1,2,3#&password=1,回显点为2,3
username=1' union select 1,2,database()#&password=1,查库
username=1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()limit 0,1#&password=1,查表
username=1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'limit 0,1#&password=1,查列
username=1' union select 1,2,group_concat(concat_ws('-',username,password)) from security.users#&password=1,查字段
修复
采用预编译
的方式修复sql漏洞
代码:
简陋的slq漏洞修复网站搭成了
)
验证
输入正确的账号和密码username=Dumb&password=Dumb回显正常
输入万能密码username=1' or 1>0#&password=Dumb,失败
联合注入username=1'union select 1,2,3#&password=Dumb,失败
Sql注入防御成功
XSS漏洞
复现
环境:
Apache 2.4.39
MySQL 5.0.96
PHP 5.5.9
代码:
简陋的xss漏洞网站搭成了
验证
输入xss
输入<script>alert('xss')</script>,存在xss漏洞
修复
基于原漏洞文件,作如下修改即可
输入<script>alert('xss')</script>,xss攻击失败