SQL手法 - 异或注入
异或注入mySQL在做String类型与数字类型的比较时, 如果字符串前面是数字,转换时就是转换成前面的数字,然后再进行比较. 比如: '1aaa' ==> 1如果字符串前面不是数字, 转换时就将其变成0进行比较.比如: 'aaa' ==>0 结果是1, 表示true 结果是0, 表示false 如何进行异或?异或操作(^)是一种逻辑运算符,用于比较两个二进制位。在异或操作中,如果两个二进制位相同,则结果为0;如果两个二进制位不同,则结果为1。 123456789计算1 ^ 21 的二进制表示是 0001,2 的二进制表示是 0010。 0001 (1) 0010 (2) ------- 0011 (3)所以 1 ^ 2 = 3 什么是异或注入?异或注入说简单一点就是在构造where后面的判断条件时使用 ^(异或符号)来达到sql注入攻击的目的 一、 正常的查询语句及效果 二、拼接异或条件的查询语句 1. 2. 为什么会有这个结果呢? 对于图1 首先:...
两个src案例
案例一**文前废话:**某天正在刷着**社区的帖子,欣赏着漂亮的小姐姐,突然间评论区的一条评论引起了我的注意,类似于下面这样 这种评论在html标签中代码格式是<a>这是文字</a>这样的同时评论区XSS漏洞的高发区,想着可能会有操作点 一、发布一个标题有js语句的贴子 二、复制这个帖子的分享连接到另一个帖子的评论区评论然后刷新,发现有弹窗 三、查看网页源码,js语句已经写入 修复建议 对帖子的主题进行严格的验证或过滤 将引用的数据进行编码处理 案例二废话:早就看那共享电车不爽了,10分钟收我1块! 一、配置好环境,对小程序进行抓包本来想测测支付漏洞的,测了半天没有任何结果。突然间发现旁边有一个上传头像的功能 这不就来了吗 二、抓包上传一个我也不认识的文件 嗯!?!上传成功了!文件名也没改 问:...
某大学的存储型XSS
一、信息收集从来就没有弱口令成功登陆过网站,就想着找找看有没有暴露初始密码的学校网站谷歌语法搜索site:*.sdu.edu.cn intext:默认密码找到一个暴露默认密码的学校网站 进入该学校的教材征订系统,需要用学号登录 然后在百度贴吧等社交平台收集学生学号信息,这里找到了一个15年的帖子暴露了许多学号的帖子 二、测试随机找一个幸运儿的学号进行登录 登录成功之后,对头像上传功能进行测试 上传图片马bp改成php文件,竟然显示上传成功了,当我以为能getshell时,发现被后台删了 用bp抓包时看到一个包里有文件保存路径,就突然间想到了zbs师傅打到的黑龙江某学校的XSS漏洞就对bp里面的路径改了一下 刷新页面有弹窗 再看前端代码 就这样人生中的第一个漏洞到手 三、修复建议 对图片路径得传参进行实体化编码 多设置一些逻辑判定
浅学XXE
什么是XXE?XXE就是XML外部实体注入。当允许引用外部实体时,通过构造恶意内容,就可能导致任意文件读取、系统命令执行、内网端口探测、攻击内网网站等危害。 什么是XML?XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。 XML有什么特点 XML仅仅是纯文本,他不会做任何事情。 XML可以自己发明标签(允许定义自己的标签和文档结构) XML 无所不在。XML 是各种应用程序之间进行数据传输的最常用的工具,并且在信息存储和描述领域变得越来越流行。 既然XML是纯文本为什么还会产生注入呢原本xml本身是没有任何作用,但是在PHP里有一个函数叫做simplexml_load_string,他的作用是把xml转化为对象。 PHP 中的simplexml_load_file()函数 ,用于加载 XML 文件并返回一个 SimpleXMLElement 对象,这样你就可以轻松地操作 XML...
正则表达式
...
SSIT模板注入
ssti模板注入攻击SSIT模板注入攻击中文名称服务端模板注入漏洞,也直接称为模板注入。当用户输入数据以不安全的方式嵌入到模板中时,就会发生模板注入。 什么是模板引擎?模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的文档。 检测模板的方法 可利用类(不全)1234567大多数利用的是os._wrap_close这个类__builtins__,它里面有eval()它的payload是...
php反序列化
序列化直接将对象数据转化成字符串或者二进制内容。然后进行存储 反序列化将序列化之后的数据,重新转变为对象 对象在程序中运行时,他是内存中的一项数据。当程序运行结束之后,对象就会被回收,回收完,对象就没有了。 通过序列化将对象的状态,转变成一个具体的数据,保存到你的硬盘上 序列化过程,只保存了对象的数据。而对应的方法是没有保存的。 反序化漏洞当PHP应用程序接收到未经验证的用户输入,并将其传递给unserialize()函数时,就可能存在反序列化漏洞。攻击者可以通过精心构造的序列化数据来触发漏洞,从而在应用程序中执行任意代码或导致不良行为。 **简单来所就是:**通过控制 序列化之后的结果的值,实现控制程序运行时对象的变量的数据。从而实现攻击 攻击步骤 找到存在反序列化的传参点 找到存在高危操作的类 。将高危操作的类中的变量进行覆盖,从而实现危险函数的调用 魔术函数1234567891011121314151617181920212223242526__construct() 对象创建时被调用__destruct() 对象被销毁时调用__toString()...
zkaq-代码执行
命令执行漏洞用户传入的参数,会被当成系统指令来执行,指令内容用户可控 命令执行的危险函数123456system() => 直接执行系统指令,并且会打印出我们的结果exec() => 会执行指令,但是显示结果不会直接输出,结果只保留最后一行shell_exec() => 会执行指令,但是显示结果不会直接输出,保留多行结果`` => shell_exec() passthru() => 等价system()popen() 浏览器特殊协议(查看网页源码) view-source: exec()、shell_exec()等无回显代码,查看命令有无成功执行的技巧 123通过 > 符号,将结果输出到某个文件里面,结果覆盖保存 >> 将结果输出到某个文件里面,结果末尾追加 | 管道符,将前面的指令运行结果,当成后面指令的输入内容 没有回显时,怎么判断我们的指令有没有执行 dnslog.cn ...
java的学习日记
输出语句123System.out.println( "abc" );//先打印abc,再进行换行System. out.print( "abc" );//只打印abc,不换行System.out.println();//不打印任何数据,只做换行处理。 变量变量的定义格式 1数据类型 变量名 = 数据值; demo 12345678910111213public class VariableDemo1{ //主入口 public static void main(String[] args){ //定义变量 //数据类型 变量名 = 数据值; //数据类型:限定了变量能存储的数据类型 //int(整数) double(小数) //数据值:真正存在变量中的数据 //等号:赋值. int a = 10; System.out.println(a);//10 }} 变量的使用方式 输入打印 12int a =...
小知识
持续更新..linux系统中的一些文件1234/etc/passwd 存放用户名/etc/hosts 存放网卡信息,可以看ip/proc/net/arp 显示arp缓存表(寻找内网其他主机)/porc/net/fib_trie 显示当先网段的路由信息 linux中的一些日志文件12345678```# 常见的linux系统下环境变量的路径: /proc/1/environ /etc/profile /etc/profile.d/*.sh ~/.bash_profile ~/.bashrc /etc/bashrc 12345# 不同的两个数md5值相同 a=s1885207154a,b=s1836677006a 123# apache2日志文件路径 Apache日志位置 /usr/local/apache2/logs/