随笔分类 - WEB安全
摘要:CodeQL具有用于标识调用其他代码,以及可以被任意位置调用的代码的类。通过这个类你可以找到从未使用过的方法。 调用图类 CodeQL的Java库提供了两个抽象类来表示程序的调用图:Callable和Call。前者是Method和Constructor的公共超类,后者是MethodAccess,Cl
阅读全文
摘要:声明类 下述表格列出了所有Stmt的子类: Statement syntaxCodeQL classSuperclassesRemarks ; EmptyStmt Expr ; ExprStmt { Stmt ... } BlockStmt if ( Expr ) Stmt else Stmt If
阅读全文
摘要:1.命令替换 实现方法 替换系统中常见的进程查看工具(比如ps、top、lsof)的二进制程序 对抗方法 使用stat命令查看文件状态并且使用md5sum命令查看文件hash,从干净的系统上拷贝这些工具的备份至当前系统,对比hash是否一致,不一致,则说明被替换了。 注:需要在bin目录下执行。 2
阅读全文
摘要:OAuth 2.0 有 4 种认证流程: 授权码模式(authorization code) 简化模式(implicit) 密码模式(resource owner password credentials) 客户端模式(client credentials) 下面以微信为例介绍最常见的也是最安全的
阅读全文
摘要:数据流程图 CodeQL数据流库通过对程序或功能的数据流图进行建模来实现对程序或功能的数据流分析。与抽象语法树不同,数据流图不反映程序的语法结构,而是在运行时对数据流过程序的方式进行建模。抽象语法树中的节点代表语法元素,例如语句或表达式。另一方面,数据流图中的节点表示在运行时带有值的语义元素。 一些
阅读全文
摘要:该库被实现为一个QL模块,是一个后缀为.qll的文件,即java.qll,该模块导入了所有核心Java库模块,因此,我们可以在查询的开始位置通过以下方式来引入完整的java库: import java 库类总结标准Java库中重要的类可以分为5种: 表示编程元素的类(例如类和方法) 表示AST节点的
阅读全文
摘要:在CodeQL CLI中使用自定义查询 为了使用CodeQL进行定制分析,我们可以通过自己编写查询来实现查找漏洞或错误。CodeQL的查询类型有: 告警查询:突出显示代码中特定位置的问题的查询。 路径查询:代码中source和sink之间信息流的查询。 基本查询结构 用CodeQL编写的查询文件扩展
阅读全文
摘要:一、CodeQL 工作流程 CodeQL 的整体工作流程如下图所示:(图片来源:https://blog.semmle.com/introduction-to-variant-analysis-part-2/) CodeQL 的整体思路是把源代码转化成一个可查询的数据库,通过 Extractor 模
阅读全文
摘要:网页加载js步骤1、浏览器一边下载html网页,一边开始解析(不等下载完就解析)2、遇到<script>标签,暂停解析,网页渲染的控制权交给javascript引擎3、如果<script>标签引用了外部脚本,先下载在执行,否则直接执行4、执行完毕,控制权交还渲染引擎,继续往下解析html网页注意:有
阅读全文
摘要:Charles的Map功能可以将某个请求进行重定向,用重定向的内容响应请求的内容。这个功能非常方便。在抓包过程当中,有时候为了调试方便,需要将线上的服务定位到内网。比如我们线上的服务器域名为 api.example.com,而内网的用于调试的服务器域名为 test.neiwang.com,那么就需要
阅读全文
摘要:burp suit的intruder攻击共有四种模式,如图所示,下面分别讲讲这四种模式的使用方法和场景。 一 、Sniper模式 Sniper模式使用一组payload集合,它一次只使用一个payload位置,假设你标记了两个位置“A”和“B”,payload值为“1”和“2”,那么它攻击会形成以下
阅读全文
摘要:SQL注入的原理 以往在Web应用程序访问数据库时一般是采取拼接字符串的形式,比如登录的时候就是根据用户名和密码去查询:1 string sql = "SELECT TOP 1 * FROM [User] WHERE UserName = '" + userName + "' AND Password = '" + password + "'"; 其中userName和password两个变量的值是由用户输入的。在userName和password都合法的情况下,这自然没有问题,但是用户输入是不可信的,
阅读全文
摘要:格式:mysqladmin -u用户名 -p旧密码 password 新密码1、给root加个密码ab12。首先在DOS下进入目录mysql\bin,然后键入以下命令 mysqladmin -u root -password ab12 注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。2、再将root的密码改为djg345。 mysqladmin -u root -p ab12 password djg345(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)3、命令行修改root密码: mysql> UPDATE mysql.use
阅读全文
摘要:一、系统的安装 1、按照Windows2003安装光盘的提示安装,默认情况下2003没有把IIS6.0安装在系统里面。2、IIS6.0的安装 开始菜单—>控制面板—>添加或删除程序—>添加/删除Windows组件 应用程序 ———ASP.NET(可选) |——启用网络 COM+ 访问(必选) |——Internet 信息服务(IIS)———Internet 信息服务管理器(必选) |——公用文件(必选) |——万维网服务———Active Server pages(必选) ...
阅读全文
摘要:本文简要说明了MySQL数据库安装好后自带的INFORMATION_SCHEMA,MySQL,TEST三个数据库的用途。 第一个数据库INFORMATION_SCHEMA:提供了访问数据库元数据的方式。元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。INFORMATION_SCHEMA是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。 每位MySQL用户...
阅读全文
摘要:有时候你可曾想过,从一个Email,或者Twitter,或是网站,甚至姓名等等,能找到一个人千丝万缕的联系,并把这些联系整合,利用起来?Maltego就是这样一款优秀而强大的工具。Maltego允许从服务器中更新,整合数据,并允许用户很大程度上的自定义,从而实现整合出最适合用户的“情报拓扑”。Maltego可以在这里下载,请注意,Commercial版是需要收费的,只有Community Editions(以下简称CE)版本才是对用户免费的版本。安装过程没有什么特别需要注意的地方,免费版本安装完毕后要求输入注册信息,点击这里注册(PS. 可能需要FQ)。随后确认邮件,输入相关信息完成注册。此处
阅读全文
摘要:首先说HUB,也就是集线器。它的作用可以简单的理解为将一些机器连接起来组成一个局域网。而交换机(又名交换式集线器)作用与集线器大体相同。但是两者在性能上有区别:集线器采用的式共享带宽的工作方式,而交换机是独享带宽。 这样在机器很多或数据量很大时,两者将会有比较明显的。而路由器与以上两者有明显区别,它的作用在于连接不同的网段并且找到网络中数据传输最合适的路径 ,可以说一般情况下个人用户需求不大。路由器是产生于交换机之后,就像交换机产生于集线器之后,所以路由器与交换机也有一定联系,并不是完全独立的两种设备。路由器主要克服了交换机不能路由转发数据包的不足。 总的来说,路由器与交换机的主要区别...
阅读全文
摘要:一个偶然的机会在知道创宇的技能表里看到了一个练习XSS的网站http://xss-quiz.int21h.jp,正好想研究这个,于是试着做了一下。 第一、二题是最简单的,直接在搜索框中输入以下代码就成功了。"> 第三题,根据提示:The input in text box is properly escaped,输入的内容已经被转义了,于是我借助了tamper data插件,在搜索框中随意输入数据,拦截提交的请求,将p2的值修改为如图所示:再进行提交便成功过关。 第四题,根据提示invisible input field,说明有hidden的input输入点,查看网页源代码,发
阅读全文
摘要:本人最近在学习XSS,想总结一下常见的XSS攻击的几种情况,刚好看到《防御XSS的七条原则》这篇文章,里面讲的七条防御原则不正是针对XSS的几种利用方式吗?于是,借来学习一下。 原则1:“Secure By Default”不要在页面中插入任何不可信数据,除非这些数已经据根据下面几个原则进行了编码 之所以有这样一条原则存在,是因为HTML里有太多的地方容易形成XSS漏洞,而且形成漏洞的原因又有差别,比如有些漏洞发生在HTML标签里,有些发生在HTML标签的属性里,还有的发生在页面的 3 4 插入到HTML注释里 5 6 7 插入到HTML标签的属性名里 8 9 1...
阅读全文
摘要:document.domain用来得到当前网页的域名。比如打开百度,在地址栏里输入:javascript:alert(document.domain); //www.baidu.com弹出窗体:我们也可以给document.domain属性赋值,不过是有限制的,你只能赋成当前的域名或者基础域名。比如:javascript:alert(document.domain = "baidu.com"); //baidu.comjavascript:alert(document.domain = "www.baidu.com");//www.baidu.com上面
阅读全文