大家看过有关渗透理论的有哪些书

大家看过有关渗透理论的有哪些书

大家看过有关渗透理论的有哪些书

渗透测试zksmile 回复了问题 • 8 人关注 • 6 个回复 • 751 次浏览 • 2017-01-12 21:58 • 来自相关话题

『数据与代码分离原则』很重要

编程kakaxi 发表了文章 • 2 个评论 • 456 次浏览 • 2016-09-16 09:11 • 来自相关话题

以前总认为这些理论很枯燥,目前正在拜读《白帽子讲Web安全》 知名白帽:吴翰清写的一本web安全类的书,其中用了很多形象的比喻和直观的举例,下面跟大家分享的就是我刚刚读到『数据与代码分离原则』部分的一段,share一下:

「数据与代码分离」广泛适用于各种由于「注入」而引发安全问题懂得场景。
实际上,缓冲区溢出,也可以认为是程序违背了这一原则的后果----程序在栈或者堆中,将用户数据当作代码执行,混淆了代码与数据的边界,从而导致安全问题的发生。
 
在Web安全中,由于「注入」引起的问题比比皆是,如XSS、SQL Injection、CRLF Injection、X-Path Injection等。此类问题均可以根据「数据与代码分离原则」设计出真正安全的解决方案,因为这原则抓住了漏洞形成的本质原因。
 
以XSS为例,它产生的原因是HTML Injection 或 JavaScript Injection,如果一个页面的代码如下:<html>
<head>test</head>
<body>
$var
</body>
</html>



其中$var 是用户能够控制的变量,那么对于这段代码来说:<htm>
<head>test</head>
<body>

</body>
</htm>
就是程序的代码执行段。
而$var
就是程序的用户数据片段。
 
如果把用户数据片段$var当成代码片段来解释、执行,就会引起安全问题。
比如,当$var的值是:<script src=http://evil></script>
时,用户数据就被注入到代码片段中。解析这段脚本并执行的过程,是由浏览器来完成的----浏览器将用户数据里的<script>标签当作代码解释---这显然不是程序开发者的本意。
 
根据数据与代码分离原则,在这里应该对用户数据片段$var进行安全处理,可以使用过滤、编码等手段,把可能造成代码混淆的用户数据清理掉,具体到这个案例中,就是针对<、>等符号做处理。
 
有的朋友可能会问了:我这里就是要执行一个<script>标签,要弹出一段文字,比如:「你好!」,那怎么办呢?
 
这种情况下,数据与代码的情况就发生了变化,根据数据与代码分离原则,我们就应该重写代码片段:<html>
<head>test</head>
<body>
<script>
alert("$var1");
</script>
</body>
</html>
在这种情况下,<script>标签也变成了代码片段的一部分,用户数据只有$var1能够控制,从本人杜绝了安全问题的发生。
 
 


这本书确实写的不错,算是目前安全业内的良心原创之作,也推荐大家看一下,目前网上有很多电子版 查看全部
以前总认为这些理论很枯燥,目前正在拜读《白帽子讲Web安全》 知名白帽:吴翰清写的一本web安全类的书,其中用了很多形象的比喻和直观的举例,下面跟大家分享的就是我刚刚读到『数据与代码分离原则』部分的一段,share一下:


「数据与代码分离」广泛适用于各种由于「注入」而引发安全问题懂得场景。
实际上,缓冲区溢出,也可以认为是程序违背了这一原则的后果----程序在栈或者堆中,将用户数据当作代码执行,混淆了代码与数据的边界,从而导致安全问题的发生。
 
在Web安全中,由于「注入」引起的问题比比皆是,如XSS、SQL Injection、CRLF Injection、X-Path Injection等。此类问题均可以根据「数据与代码分离原则」设计出真正安全的解决方案,因为这原则抓住了漏洞形成的本质原因。
 
以XSS为例,它产生的原因是HTML Injection 或 JavaScript Injection,如果一个页面的代码如下:

<html>
<head>test</head>
<body>
$var
</body>
</html>



其中$var 是用户能够控制的变量,那么对于这段代码来说:
<htm>
<head>test</head>
<body>

</body>
</htm>

就是程序的代码执行段。
$var

就是程序的用户数据片段。
 
如果把用户数据片段$var当成代码片段来解释、执行,就会引起安全问题。
比如,当$var的值是:
<script src=http://evil></script>

时,用户数据就被注入到代码片段中。解析这段脚本并执行的过程,是由浏览器来完成的----浏览器将用户数据里的<script>标签当作代码解释---这显然不是程序开发者的本意。
 
根据数据与代码分离原则,在这里应该对用户数据片段$var进行安全处理,可以使用过滤、编码等手段,把可能造成代码混淆的用户数据清理掉,具体到这个案例中,就是针对<、>等符号做处理。
 
有的朋友可能会问了:我这里就是要执行一个<script>标签,要弹出一段文字,比如:「你好!」,那怎么办呢?
 
这种情况下,数据与代码的情况就发生了变化,根据数据与代码分离原则,我们就应该重写代码片段:
<html>
<head>test</head>
<body>
<script>
alert("$var1");
</script>
</body>
</html>

在这种情况下,<script>标签也变成了代码片段的一部分,用户数据只有$var1能够控制,从本人杜绝了安全问题的发生。
 
 



这本书确实写的不错,算是目前安全业内的良心原创之作,也推荐大家看一下,目前网上有很多电子版

美团昨天面试题:给你一个webshell,如何渗透内网,给出详细思路

渗透测试p1rate 回复了问题 • 9 人关注 • 4 个回复 • 1309 次浏览 • 2016-09-10 16:00 • 来自相关话题

条新动态, 点击查看
1.windows先看看机器是不是能够执行命令,能执行命令net view看看内网有多大,然后搜索本地的txt看看有没有内网的服务器相关的东西,再就是看看数据库,内网的数据库应该连着很多站点的,看看能不能找到点oa erm之类的账号密码,能搞进去oa erm什... 显示全部 »
1.windows先看看机器是不是能够执行命令,能执行命令net view看看内网有多大,然后搜索本地的txt看看有没有内网的服务器相关的东西,再就是看看数据库,内网的数据库应该连着很多站点的,看看能不能找到点oa erm之类的账号密码,能搞进去oa erm什么的几乎就能找到很多内网的数据。。拿到想要的数据,内网渗透就差不多了,再下去可能收手有点麻烦。 如果windows权限低,查看补丁对应exp提权。提权成功参照前面说的,不成功写脚本扫描内网试试盲打。 我内网渗透经验少,不过去过几个公司做内网的测试,内网几乎所有网站都是sa root权限,strtus2漏洞一堆,sql注入什么的就别提了....
 
2.linux自行百度吧

大家看过有关渗透理论的有哪些书

回复

渗透测试zksmile 回复了问题 • 8 人关注 • 6 个回复 • 751 次浏览 • 2017-01-12 21:58 • 来自相关话题

美团昨天面试题:给你一个webshell,如何渗透内网,给出详细思路

回复

渗透测试p1rate 回复了问题 • 9 人关注 • 4 个回复 • 1309 次浏览 • 2016-09-10 16:00 • 来自相关话题

『数据与代码分离原则』很重要

编程kakaxi 发表了文章 • 2 个评论 • 456 次浏览 • 2016-09-16 09:11 • 来自相关话题

以前总认为这些理论很枯燥,目前正在拜读《白帽子讲Web安全》 知名白帽:吴翰清写的一本web安全类的书,其中用了很多形象的比喻和直观的举例,下面跟大家分享的就是我刚刚读到『数据与代码分离原则』部分的一段,share一下:

「数据与代码分离」广泛适用于各种由于「注入」而引发安全问题懂得场景。
实际上,缓冲区溢出,也可以认为是程序违背了这一原则的后果----程序在栈或者堆中,将用户数据当作代码执行,混淆了代码与数据的边界,从而导致安全问题的发生。
 
在Web安全中,由于「注入」引起的问题比比皆是,如XSS、SQL Injection、CRLF Injection、X-Path Injection等。此类问题均可以根据「数据与代码分离原则」设计出真正安全的解决方案,因为这原则抓住了漏洞形成的本质原因。
 
以XSS为例,它产生的原因是HTML Injection 或 JavaScript Injection,如果一个页面的代码如下:<html>
<head>test</head>
<body>
$var
</body>
</html>



其中$var 是用户能够控制的变量,那么对于这段代码来说:<htm>
<head>test</head>
<body>

</body>
</htm>
就是程序的代码执行段。
而$var
就是程序的用户数据片段。
 
如果把用户数据片段$var当成代码片段来解释、执行,就会引起安全问题。
比如,当$var的值是:<script src=http://evil></script>
时,用户数据就被注入到代码片段中。解析这段脚本并执行的过程,是由浏览器来完成的----浏览器将用户数据里的<script>标签当作代码解释---这显然不是程序开发者的本意。
 
根据数据与代码分离原则,在这里应该对用户数据片段$var进行安全处理,可以使用过滤、编码等手段,把可能造成代码混淆的用户数据清理掉,具体到这个案例中,就是针对<、>等符号做处理。
 
有的朋友可能会问了:我这里就是要执行一个<script>标签,要弹出一段文字,比如:「你好!」,那怎么办呢?
 
这种情况下,数据与代码的情况就发生了变化,根据数据与代码分离原则,我们就应该重写代码片段:<html>
<head>test</head>
<body>
<script>
alert("$var1");
</script>
</body>
</html>
在这种情况下,<script>标签也变成了代码片段的一部分,用户数据只有$var1能够控制,从本人杜绝了安全问题的发生。
 
 


这本书确实写的不错,算是目前安全业内的良心原创之作,也推荐大家看一下,目前网上有很多电子版 查看全部
以前总认为这些理论很枯燥,目前正在拜读《白帽子讲Web安全》 知名白帽:吴翰清写的一本web安全类的书,其中用了很多形象的比喻和直观的举例,下面跟大家分享的就是我刚刚读到『数据与代码分离原则』部分的一段,share一下:


「数据与代码分离」广泛适用于各种由于「注入」而引发安全问题懂得场景。
实际上,缓冲区溢出,也可以认为是程序违背了这一原则的后果----程序在栈或者堆中,将用户数据当作代码执行,混淆了代码与数据的边界,从而导致安全问题的发生。
 
在Web安全中,由于「注入」引起的问题比比皆是,如XSS、SQL Injection、CRLF Injection、X-Path Injection等。此类问题均可以根据「数据与代码分离原则」设计出真正安全的解决方案,因为这原则抓住了漏洞形成的本质原因。
 
以XSS为例,它产生的原因是HTML Injection 或 JavaScript Injection,如果一个页面的代码如下:

<html>
<head>test</head>
<body>
$var
</body>
</html>



其中$var 是用户能够控制的变量,那么对于这段代码来说:
<htm>
<head>test</head>
<body>

</body>
</htm>

就是程序的代码执行段。
$var

就是程序的用户数据片段。
 
如果把用户数据片段$var当成代码片段来解释、执行,就会引起安全问题。
比如,当$var的值是:
<script src=http://evil></script>

时,用户数据就被注入到代码片段中。解析这段脚本并执行的过程,是由浏览器来完成的----浏览器将用户数据里的<script>标签当作代码解释---这显然不是程序开发者的本意。
 
根据数据与代码分离原则,在这里应该对用户数据片段$var进行安全处理,可以使用过滤、编码等手段,把可能造成代码混淆的用户数据清理掉,具体到这个案例中,就是针对<、>等符号做处理。
 
有的朋友可能会问了:我这里就是要执行一个<script>标签,要弹出一段文字,比如:「你好!」,那怎么办呢?
 
这种情况下,数据与代码的情况就发生了变化,根据数据与代码分离原则,我们就应该重写代码片段:
<html>
<head>test</head>
<body>
<script>
alert("$var1");
</script>
</body>
</html>

在这种情况下,<script>标签也变成了代码片段的一部分,用户数据只有$var1能够控制,从本人杜绝了安全问题的发生。
 
 



这本书确实写的不错,算是目前安全业内的良心原创之作,也推荐大家看一下,目前网上有很多电子版