2019-9-10:渗透测试,基础学习,sql注入笔记
sql注入
1,万能密码,自己写的网站,找到登录窗口,必须和数据库交互,往里插入构造的恶意代码,最后可以直接登录进去,不需要账号和密码,输入的恶意代码成为万能密码,后端拼接的sql语句,SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';
用户登录的地方没有处理,可以输入用户名 admin' or 1=1#,使用’单引号闭合
注释符号:# -- %25 %2d%2d --+
在输入:admin' and1=1#
admin' or 1=1 limit 0,1#
加单引号需要根据后端数据类型,如果是字符串类型就需要加,整型就不需要
构成语句 select * from 'users' where user = '$user' or '1'='1' and password = '$pass';
万能密码出现原因
前端传递的参数可以随意控制,后端,后端代码执行过程中将用户输入的数据也当做代码执行了,违背了代码和数据分离原则
利用的思路是由于后端对前端传递的数据没有过滤,或者过滤不严谨,导致万能密码sql注入
危害,会造成数据泄漏,被拖库,篡改网站,破坏数据库,植入后门getshell
sql注入分类
请求方式,get post cookie
参数形式,整型,字符型,搜索
反馈类型,报错,union,延时,布尔(时间、页面显示状态)
数据库类型,access ,mssql,mysql,oracle,nosql等
利用技术,布尔,报错,内敛,堆叠,时间,联合
手工注入
常用数据库函数以及常量
ascii()
user()
version()
database()
concat()
group_concat()
concat_ws()
substr(s,start,leng),字符串截取函数都有三个参数,截取字符串,开始索引位置,截取长度
substring(s,start,leng) mysql,mssql常用
mid() mysql常用
left(s,n),从左边开始截取,s是截取字符串,n是要截取的长度
right(s,n),从右边开始截取,s是截取的字符串,n是要截取的长度
if(条件,条件为真返回值,不为真的返回)函数有三个参数,第一个是条件,第二个是条件为真的返回值或语句,第三个是条件不为真的返回值或语句,例如 if(1=1,"true","false")
CASE 表示函数开始,END 表示函数结束。如果 condition1 成立,则返回 result1, 如果 condition2 成立,则返回 result2,当全部不成立则返回 result,而当有一个成立之后,后面的就不执行了。
lenght()计算字符串长度
@@tmpdir
@@datader
@@basedir
@@version
@@hostname
联合查询,可以用做信息收集
selece * from users where id=1 union select 1,2,3
查询语句是前边语句没有的值,就会显示联合查询后的语句的值
mysql数据库中的,一库一表三字段
mysql大于5.0,information_schema库,系统库汇总,其他数据库的库名,表名,字段名
columns表,储存数据库名表名字段名
关注columns表下的字段
table_schema ,其他数据库的库名
table_name,其他数据库的表名
column_name,其他数据库的字段名
手工注入
1,检测注入点(可能存在sql注入的地方),找到类似id(id/uid/typeid/sid/key)的参数,后面需要插入一些检测的恶意代码
’单引号
“双引号
' and 1=1--
0' or '1'='1
需不需要引号,是由后台拼接的sql语句决定的,输入的恶意pyload被成功执行(根据页面和报错信息来确定),说明此处有sql注入点,
接下来需要判断注入方式,报错,布尔,堆叠等,主要根据页面回显结果,来确定使用哪种注入方式,比如 sleep()基于时间,判断从后台数据库中选择的列数以及哪几列显示
2,收集后台数据库信息,使用union等确定注入之后结果返回的位置,将会显示到前端的所在列的位置修改成先要看的信息,比如database() ,user(),colume
3,获取当前数据库的表名,如 , SELECT DISTINCT GROUP_CONCAT(DISTINCT table_name) FROM information_schema.COLUMNS where table_schema='jdycms'
4,获取当前数据库下的指定表下的字段名, 如 SELECT DISTINCT GROUP_CONCAT(DISTINCT column_name) FROM information_schema.COLUMNS where table_schema=database() and table_name='jdy_admin'
5,获取值,select concat(username,0x7e,password) from jdy_admin
6,解密,pmd5,cmd5,chamd5,somd5
7,找后台登录,猜目录,信息收集,目录扫描
cms内容管理系统
cms名词,版本,漏洞,漏洞利用
社工密码字典生成工具
pydictor,强大的密码生成器
cupper,针对国人的社工密码生成器
wordhound,基于推特搜索,pdf文档,reddit子网站创建密码字典
brutescrape,读取站点页面内容,分析页面,分析结果导出密码字典
易优密码生成器
在线生成
2019-9-10:渗透测试,基础学习,sql注入笔记的更多相关文章
- Web渗透测试入门之SQL注入(上篇)
题记: 本来今天想把白天刷的攻防世界Web进阶的做个总结,结果估计服务器抽疯环境老报错,然后想了下今天用到了SQL注入,文件上传等等,写写心得.相信很多朋友都一直想学好渗透,然后看到各种入门视频,入门 ...
- 【web渗透技术】渗透攻防Web篇-SQL注入攻击初级
[web渗透技术]渗透攻防Web篇-SQL注入攻击初级 前言不管用什么语言编写的Web应用,它们都用一个共同点,具有交互性并且多数是数据库驱动.在网络中,数据库驱动的Web应用随处可见,由此而存在的S ...
- web安全学习(sql注入1)
web安全学习(sql注入1) 一.简介 sql语句就是数据库语句,而sql注入就是用户将自己构造的恶意sql语句提交,然后服务器执行提交的危险语句.sql注入可能造成信息泄露以及服务器被控制等危害. ...
- 零基础到精通Web渗透测试的学习路线
小编相信很多新手都会遇到以下几个问题 1.零基础想学渗透怎么入手? 2.学习web渗透需要从哪里开始? 这让很多同学都处于迷茫状态而迟迟不下手,小编就在此贴给大家说一下web渗透的学习路线,希望对大家 ...
- 通过sqli-labs学习sql注入——基础挑战之less1
环境准备: Phpstudy (PHP+Apache+Mysql) Sql-lab 首先了解下基础知识: URL编码: 因为在浏览器中,当我们访问一个网址的时候,浏览器会自动将用户输入的网址进行UR ...
- 通过sqli-labs学习sql注入——基础挑战之less1-3
首先,先看一些基础知识吧!!!!本人只是初学者,记录一下自己的学习过程,有什么错误之处请指出,谢谢!大佬请绕过!!!! url编码:一般的url编码其实就是那个字符的ASCII值得十六进制,再在前面加 ...
- WEB渗透测试基础工具
代理查询网站:hidemyass(隐藏我的屁股) HTTrack:HTTrack是一个免费和易用的离线浏览工具(浏览器),它可以允许你下载整个WWW网站至本地目录,并且通过遍历网站目录获取HTML,图 ...
- WebGoat学习——SQL注入(SQL Injection)
SQL注入(SQL Injection) 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令.攻击者通过web请求提交带有影响正 ...
- 学习SQL注入---1
开始接触SQL注入了,最开始根据网上的思路做了两道注入的题,但对于SQL注入如何实现,怎么一个流程还是不理解.后来,在网上查找了很多资料,现在一点点去理解. 1.利用sqlmap注入的时候,不是所有页 ...
随机推荐
- 编程语言分类 + python解释器的安装 + jupyter的使用(day 02整理)
目录 一.昨日内容回顾 一 计算机基础之编程 (一) 什么是编程语言 (二) 什么是编程 (三) 为什么编程 二 计算机组成 (一) CPU (二) 存储器 (三) I/O设备 (四) 多核CPU ( ...
- vue事件
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- [AI开发]零数学公式告诉你什么是(卷积)神经网络
大部分介绍神经网络的文章中概念性的东西太多,而且夹杂着很多数学公式,读起来让人头疼,尤其没什么基础的人完全get不到作者想要表达的思想.本篇文章尝试零公式(但有少量数学知识)说清楚什么是神经网络,并且 ...
- vw vh 的概念
视口单位(Viewport units) 什么是视口? 在桌面端,视口指的是在桌面端,指的是浏览器的可视区域:而在移动端,它涉及3个视口:Layout Viewport(布局视口),Visual Vi ...
- IDEA 使用lombok
一.配置maven <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback ...
- 熊海cms v1.0 完全代码审计
很久以前写的,写这个东西更多的是为了说明我自己的一个思路,即按照程序功能点进行代码审计, 这样经过一段时间训练,熟悉了某种功能的正确和错误实现方法,遇到类似的代码就可以很快看出是否有问题了 --- 0 ...
- [考试反思]0828NOIP模拟测试32:沉底
,,190,180,170,170... 倒数第6,75. 啊...再这么下去要失去理想了... 开学翘课停课以来的第一场考试,就考成这鬼模样. 本来还可以凭借那几次高分苟在公共卷总分的第2,这一场直 ...
- 和manacher有关的乱写
当初学kmp hash的时候被教导manacher非常的鸡肋 今天因为一篇神奇的题解我忍不住颓废了两节课把它学了 思路,代码都比较好懂 虽然它不如各种自动机霸气,唯一的功能貌似就是$O(n)$求出所有 ...
- NOIP模拟 1
NOIP模拟1,到现在时间已经比较长了.. 那天是6.14,今天7.18了 //然鹅我看着最前边缺失的模拟1,还是终于忍不住把它补上,为了保持顺序2345重新发布了一遍.. # 用 户 名 ...
- N42-qq-林友埙-第二周作业
1.Linux发行版的系统目录名称命名规则及用途 2.文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息 1.文件的元数据是指文件的属性.大小.创建时间.访问时间.属主属组等 ...