以下代码是JavaScript代码.我试图了解JavaScript中的函数范围并在此处阅读文章.我正在复制下面的代码 -
var cow = "purple"; // just a random cow
var f = function (x) {
var r = 0;
cow = "glue";
if (x > 3) {
var cow = 1; // a local variable
r = 7;
}
return r;
};
var z = f(2);
alert(cow); // returns purple
Run Code Online (Sandbox Code Playgroud)
我不太明白为什么字符串"紫色"会被警告.该行cow = "glue";
应将cow变量的值设置为"glue".如果我删除if块,然后在最后一个语句中警告cow,我看到字符串"glue"被警告.
当调用f(2)时,不输入if代码块并且其中没有任何内容被执行,那么为什么我会看到不同的结果呢?即为什么在最后一个语句中警告牛现在返回字符串"紫色"?
我试图从Web应用程序中引发HTTP响应的人为延迟(这是一种用于执行盲SQL注入的技术).如果从浏览器发送以下HTTP请求,则Web服务器的响应在3秒后返回(由sleep(3)引起):
http://192.168.2.15/sqli-labs/Less-9/?id=1'+and+if+(ascii(substr(database(),+1,+1))=115,sleep(3),null)+--+
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用请求库在Python 2.7中执行相同的操作.我的代码是:
import requests
payload = {"id": "1' and if (ascii(substr(database(), 1, 1))=115,sleep(3),null) --+"}
r = requests.get('http://192.168.2.15/sqli-labs/Less-9', params=payload)
roundtrip = r.elapsed.total_seconds()
print roundtrip
Run Code Online (Sandbox Code Playgroud)
我预计往返时间为3秒,但我得到的值为0.001371,0.001616,0.002228等.我没有正确使用经过的属性吗?
我正在尝试编写一个故意容易受命令注入攻击的页面.这适用于培训环境.这是我到目前为止的代码:
public ActionResult CommandInjection()
{
string domain = Request.QueryString["domain"];
ViewBag.Domain = domain;
ProcessStartInfo psi = new ProcessStartInfo("nslookup.exe", domain)
{
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true
};
var proc = Process.Start(psi);
string result = proc.StandardOutput.ReadToEnd();
ViewBag.Msg = "This page is vulnerable to Command Injection";
ViewBag.Result = result;
return View();
}
Run Code Online (Sandbox Code Playgroud)
当它看到正常的域查找请求时似乎运行良好.
但是,当它看到这样的请求时:
http://localhost:50159/Home/CommandInjection?domain=www.google.com+%26+dir
它返回一个空白.
我期待的是它会返回域查找结果,然后是dir
命令输出.
我正在使用 Marp,它是一个在 Markdown 中创建演示文稿并将其转换为 pdf 的工具。在第一张幻灯片上,我有一些内容,例如:
# <center> Working with Virtual Box </center>
<img align="right" src="images/logo.png" width="250">
Run Code Online (Sandbox Code Playgroud)
所有这些都是顶部中心对齐的。我想要的是文本居中对齐(垂直和水平),图像右下对齐。我在 Marp 文档中找不到太多相关信息。我希望有更好 css 的人知道如何提供帮助!相信我,我为此搜索了两个多小时,但我缺乏 CSS 技能,这让我一事无成。
我用PHP编写了一个类,用于发送使用Gmail帐户的邮件.该类又使用PHPMailer库.该设置是Windows Vista上的WAMP 2.4.使用microtime()
PHP中的函数,我发现发送一封邮件需要5到6秒.在这种设置上运行的PHP脚本是否正常,我需要花费5-6秒才能发送一封邮件.这是该类的代码.
<?php
require_once("phpmailer/class.phpmailer.php");
require_once("phpmailer/class.smtp.php");
class Mailer {
// Needs to be set per object
public $subject;
public $message;
public $to_name;
public $to;
private $mail; // This is the main mail object that'll be initialized
public function __construct() {
// Need to create a PHPMailer object in the constuctor and return it for use in this class.
$mail = new PHPMailer();
$from_name = "bleh";
$from = "bleh@gmail.com";
$username = "bleh";
$password = "bleh";
$mail->FromName = $from_name;
$mail->From …
Run Code Online (Sandbox Code Playgroud) 运行mkpasswd -m sha-512 -S salt1234 password
结果如下:
$6$salt1234$Zr07alHmuONZlfKILiGKKULQZaBG6Qmf5smHCNH35KnciTapZ7dItwaCv5SKZ1xH9ydG59SCgkdtsTqVWGhk81
Run Code Online (Sandbox Code Playgroud)
我有这段Python代码,我认为会输出相同的,但不是:
import hashlib, base64
print(base64.b64encode(hashlib.sha512('password' + 'salt1234').digest()))
Run Code Online (Sandbox Code Playgroud)
它反而导致:
nOkBUt6l7zlKAfjtk1EfB0TmckXfDiA4FPLcpywOLORZ1PWQK4+PZVEiT4+9rFjqR3xnaruZBiRjDGcDpxxTig==
Run Code Online (Sandbox Code Playgroud)
不确定我做错了什么.
我的另一个问题是,如何告诉sha512函数进行自定义轮次.似乎只需要一个论点.
int main(int argc, char **argv) {
unsigned int ptr1 = *((unsigned int *)(argv[1]));
printf("ptr1 = 0x%x\n", ptr1);
exit(0);
}
Run Code Online (Sandbox Code Playgroud)
这是视频教程中的代码段.我不确定我是否理解为什么代码在运行时不会导致分段错误.
(unsigned int *)(argv[1])
这看起来像传递给程序的第一个参数被转换为unsigned int.因此,如果参数是'AAAA',那么'0x41414141'现在是指向内存中某个位置的指针.
然后,当我们这样做时,我们*((unsigned int *)(argv[1]))
不是要引用地址指向的值0x41414141
吗?据我所知,该过程可能无法访问此地址.那怎么没有发生分段错误呢?该计划的输出是 -
ptr1 = 0x41414141
我在Linux上用gcc编译了这个程序.
为了提供一些背景知识,我想研究x86指令是如何手动编码/解码的。我遇到了ModR/M
and SIB
字节,似乎了解x86寻址模式对于理解指令编码方案至关重要。
因此,我在Google搜索了x86寻址模式。搜索返回的大多数博客/视频都是8086处理器的寻址模式。通过其中的一些,不同的寻址模式是寄存器,直接,间接,索引,基于等。但是,在引用这些寻址方式时,博客使用的名称不一致。多个不同的源使用多种不同的寻址模式。此处的英特尔手册中甚至没有提到这些不同的术语。例如,我似乎无法在Intel手册中找到任何称为“直接”或“间接”的寻址模式。另外,Mod
在比特ModRM
字节是一个2比特字段,这使我不知道是否超过4种的寻址方式是可能的。
我的问题是,诸如直接寻址模式之类的术语是间接寻址模式的旧术语,这些术语不再在英特尔手册中使用,而是由公众使用。如果存在技术上确实存在的术语,则可以在手册中找到它们的引用。
python-2.7 ×2
asp.net-mvc ×1
assembly ×1
c ×1
c# ×1
casting ×1
css ×1
dereference ×1
elapsed ×1
hash ×1
hashlib ×1
html ×1
httpresponse ×1
javascript ×1
markdown ×1
marp ×1
performance ×1
php ×1
phpmailer ×1
pointers ×1
python ×1
roundtrip ×1
scope ×1
sha512 ×1
x86 ×1