This paper proposes to test web applications and
generate the feasible exploits directly and automatically, including cross-site scripting and SQL injection attacks. Our target is to generate the attack string and reproduce the results, emulating the manual attack behavior. In contrast with other traditional detection and prevention methods, we can certainly determine the presence of vulnerabilities and prove the feasibility of attacks. This automatic generation process is mainly based on a dynamic software testing method-symbolic execution by
S2E. We have applied this automatic process to several known vulnerabilities on large-scale open source web applications, and generated the attack strings successfully. Our method is web platform independent, covering PHP, JSP, Rails, and Django.
This document describes a project called ZoneIDAProc that aims to provide an interface for accessing internal process states. It discusses related work, the problem statement, design, implementation details, examples, and conclusions. The key points are that ZoneIDAProc will export a Linux proc-like interface to allow querying and manipulating a process's internal states through code instrumentation and a virtual file system without requiring debug symbols. It provides examples of basic read/write access, monitoring a main thread with a spy thread, exploring process symbols, and fully instrumenting and accessing a target program.
The document discusses crash-resistance in software and how it can be exploited. It explains how exceptions generated by crashes in callback functions in Windows are handled, allowing programs to continue running despite crashes. This crash-resistance property is demonstrated through a simple example program. The document then discusses how crash-resistant probing of memory can be used to bypass defenses like ASLR by scanning process memory from a web worker without crashing the browser. Techniques like heap spraying and type confusion are used to craft fake objects and scan memory in a crash-resistant manner to discover information like the TEB and DLL base addresses.
Feldo: Function Event Listing and Dynamic Observing for Detecting and Prevent...Tzung-Bi Shih
?
This document summarizes the OSX.KeRanger ransomware. It begins by describing how the ransomware attaches itself as a disk image and drops a file called General.rtf. It then analyzes how General.rtf is UPX packed and unlinks itself to hide. It explains how the ransomware daemonizes and waits before generating a UUID and communicating with its command and control server to receive an RSA public key and ransom statement. Finally, it details how the ransomware encrypts files based on specific file extensions except for a few file types like README_FOR_DECRYPT.txt.
The program implements encryption and decryption of strings using the Blowfish algorithm. It generates a Blowfish secret key, uses it to initialize ciphers for encryption and decryption, and encrypts/decrypts a sample string. The encrypted string, decrypted string, and original string are printed for verification.
The document contains C++ code examples demonstrating various programming concepts like:
1. A program that takes input from the user, performs addition if the input letter is 'A' and prints output. Otherwise it prints invalid letter.
2. Multiple code snippets showing the use of for loops, if-else conditions, functions and arithmetic operations.
3. Code examples to find even/odd numbers in an array, check if a number is prime, calculate factorials, print multiplication tables and find the sum of numbers.
This document contains the code solutions to 6 questions on structured programming techniques in C++. It demonstrates the use of different loop structures like while and for loops to calculate the area and perimeter of a rectangle, convert inches to centimeters, determine if a user is a child, adult or senior citizen based on age, calculate factorials of a given number, find the sum of first N natural numbers, and calculate the sum of squares of a given number. For each question, multiple solutions using different loop types are provided along with sample outputs.
This document is a report submitted for a Master of Technology degree in Computer Network Engineering. It describes 5 experiments conducted in a Computer Networks and Information Security Laboratory:
1) A program to transfer a file from a server to client using TCP sockets.
2) Implementing leaky bucket algorithm for traffic management at the flow level.
3) Using the Bellman-Ford algorithm to implement dynamic routing strategies for optimal data transmission paths.
4) Implementing the Dijkstra algorithm for link state routing.
5) Using CRC techniques for error detection during data transfer over unreliable networks.
The document discusses clang-tidy, which is a tool for statically analyzing C++ code and finding typical programming errors. It has over 200 built-in rules for checking adherence to coding guidelines and best practices. The document provides examples of running clang-tidy on sample code and detecting issues. It also discusses how to develop custom rules by traversing the AST and registering matchers. Overall, the document serves as an introduction to using clang-tidy for code reviews and improving code quality.
SymNet is a tool that uses symbolic execution to analyze network behavior and check properties like reachability and loop detection. It models networks as programs and network elements as program blocks. SymNet analyzes how header fields change as packets traverse the network by symbolically executing the network program. This allows SymNet to scalably reason about network connectivity in the presence of middleboxes, without considering global state. Future work aims to extend SymNet's analysis capabilities.
Field Failure Reproduction Using Symbolic Execution and Genetic ProgrammingAlex Orso
?
Talk at the 30th CREST Open Workshop on Search Based Software Testing (SBST) and Dynamic Symbolic Execution (DSE) -- http://crest.cs.ucl.ac.uk/cow/30/
University College London, January 2014
Video available at http://youtu.be/i4T2g-mdJ-U
A recent survey conducted among developers of the Apache, Eclipse, and Mozilla projects showed that the ability to recreate field failures is considered of fundamental importance when investigating bug reports. Unfortunately, the information typically contained in a bug report, such as memory dumps or call stacks, is usually insufficient for recreating the problem. Even more advanced approaches for gathering field data and help in-house debugging tend to collect either too little information, and be ineffective, or too much information, and be inefficient. This talk presents two techniques that address these issues: BugRedux and SBFR. Both techniques aim to provide support for in-house debugging of field failures by synthesizing, using execution data collected in the field, executions that mimic the observed field failures. BugRedux relies on symbolic execution, whereas SBFR leverages dynamic programming. The talk discusses the two techniques' complementary strengths and weaknesses.
Symbolic Reasoning and Concrete Execution - Andrii Vozniuk Andrii Vozniuk
?
Higher-order test generation and symbolic execution with mixed concrete-symbolic solving are two approaches to dealing with imprecision caused by complex functions in test generation. Higher-order test generation models concretization symbolically using a higher-order logic and relies on validity proofs, while symbolic execution with mixed solving splits constraints into simple and complex parts, solves the simple part concretely, and uses those solutions to simplify the complex part, relying on standard constraint solving. Both approaches improve on dynamic test generation but are theoretical, sound but incomplete.
A Survey on Automatic Test Generation and Crash ReproductionSung Kim
?
The document provides an outline for a PhD qualifying exam on automatic test generation and crash reproduction. It discusses various approaches to automatic test generation including feedback-directed random generation, captured-object based generation, genetic evolution based generation, symbolic execution, and dynamic symbolic execution. It also covers approaches to automatic crash reproduction including record-and-replay and static analysis based approaches. The document identifies common challenges faced by these techniques such as the object creation problem in automatic test generation.
These slides contain an introduction to Symbolic execution and an introduction to KLEE.
I made this for a small demo/intro for my research group's meeting.
It is quite often that software developers have absolutely no clue about the cost of an error. It is very important that the error be found at the earliest possible stage.
Whatever it takes - Fixing SQLIA and XSS in the processguest3379bd
?
This document discusses techniques for preventing SQL injection and cross-site scripting (XSS) vulnerabilities. It proposes using prepared statements with separate data and control planes as a "safe query object" approach. It also discusses policy-based sanitization of HTML and focusing code reviews on defect detection through annotating suspicious code regions. The overall goal is to help developers adopt architectures and techniques that thoroughly apply technical solutions to recognize and fix security weaknesses.
This document provides an overview of fuzzing techniques and the Sulley fuzzing framework. It begins with definitions of fuzzing and different fuzzing techniques like static testing, randomized fuzzing, and mutation-based fuzzing. The rest of the document demonstrates how to setup and use the Sulley framework to fuzz protocols like HTTP and file formats. It includes explanations of the Sulley API and how to generate test cases, monitor for crashes, and analyze results. Examples are provided of fuzzing HTTP servers and file formats.
The why and how of moving to PHP 5.5/5.6Wim Godden
?
With PHP 5.6 out and many production environments still running 5.2 or 5.3, it's time to paint a clear picture on why everyone should move to 5.5 and 5.6 and how to get code ready for the latest version of PHP. In this talk, we'll look at some handy tools and techniques to ease the migration.
Eclipse Con 2015: Codan - a C/C++ Code Analysis Framework for CDTElena Laskavaia
?
Presentation about code analysis framework for CDT which is C/C++ IDE based on Eclipse. How to write a good static analysis tool? How to integrate right where develop introduces bugs? Catch bugs as you type!
Protocol T50: Five months later... So what?Nelson Brito
?
T50 (an Experimental Mixed Packet Injector) new features added to version 5.3 (Chaos Maker).
Check the original demonstration videos:
- https://www.youtube.com/playlist?list=PLda9TmFadx_m2qdd-euUf4zhQ-5juTVEx
For further source codes, please, refer to:
- http://t50.sourceforge.net/
This tutorial is intended for verification engineers that must validate algorithmic designs. It presents the detailed steps for implementing a SystemVerilog verification environment that interfaces with a GNU Octave mathematical model. It describes the SystemVerilog ¨C C++ communication layer with its challenges, like proper creation and activation or piped algorithm synchronization handling. The implementation is illustrated for Ncsim, VCS and Questa.
The document discusses using Python for ethical hacking and penetration testing. It provides reasons for using Python such as its ease of use, readable syntax, rich libraries, and existing tools. It then covers various Python libraries and frameworks used for tasks like reconnaissance, scanning, exploitation, and packet manipulation. Specific topics covered include file I/O, requests, sockets, scapy, and more.
Measuring maintainability; software metrics explainedDennis de Greef
?
In a world of ever-changing business requirements, how can you keep your software moving at the same pace?
If you keep adding lines of code around the previous iteration to add new functionality, things can become complex quite fast.
By measuring complexity, you can resolve and prevent bugs, while measuring class responsibility can make refactoring easier, for example.
In this talk Dennis will go through certain concepts of analysing software with automated tools to spit out numbers which tell a story about your code.
Secure Software: Action, Comedy or Drama? (2017 edition)Peter Sabev
?
If they made movies about the most important software security issues, they could be put into five titles: Insecure Interface, Insufficient Authentication, Security Misconfiguration, Lack of Transport Encryption and Privacy Concerns. What are the action, comedy and drama parts in software security nowadays? A talk presented on IT-Weekend event in Ruse, Bulgaria (2017)
CodeChecker is a static analysis tool that finds bugs in code by performing interprocedural analysis across files and functions. It uses the Clang compiler infrastructure to run checks from tools like the Clang Static Analyzer and Clang Tidy. CodeChecker provides features like cross-translation unit analysis, suppressing and tagging issues, and integration with version control systems. It outputs analysis results that are easy for developers to understand and fix issues.
The document provides information about Zenith Networks and Juniper Networks. It discusses that Zenith Networks has been a partner of Juniper Networks for 27 years providing network integration and education services. It also mentions that Juniper Networks was founded in 1996 and is headquartered in Sunnyvale, CA with over 9,400 employees in 46 countries. The document then goes over Juniper's JUNOS operating system and its modular design.
This document discusses the padding oracle attack, which allows decryption of encrypted data by exploiting flaws in padding validation on encrypted ciphertext. It describes how the attack works by using a padding validation "oracle" to decrypt ciphertext blocks one-by-one. It then explains how this can be used to decrypt web traffic and authentication cookies, potentially allowing complete compromise of the system.
Lors de cette pr¨¦sentation, nous apprendrons ¨¤ cr¨¦er des applications Web plus rapidement et avec moins d'erreurs en utilisant un langage de programmation puissant et amusant.
Agenda
- Installer TypeScript et configurer un nouveau projet.
- Tirer avantage des types de donn¨¦es.
- D¨¦velopper en Objets avec TypeScript
- Ecrire de meilleures fonctions
- Retrouver vos donn¨¦es avec LINQ
- Programmer de mani¨¨re asynchrone
- Bonnes pratiques
- Avantages et inconv¨¦nients des projets TypeScript
- Conclusion et Discussion
Application and Website Security -- Fundamental EditionDaniel Owens
?
The document provides an agenda for a course on application and website security. The agenda covers common input validation flaws like SQL injection and cross-site scripting, access control flaws like session hijacking, encryption flaws, security tools, and concludes with additional resources for further information. The document uses examples to demonstrate various security vulnerabilities and how they can be exploited.
[Èô¿ÊÓ‹®‹] Challenges and Solutions of Window Remote ShellcodeAj MaChInE
?
This document discusses challenges and solutions related to window remote shellcode. It outlines challenges posed by antivirus software, EMET, firewalls, and IDS/IPS systems. It then describes various techniques for bypassing these protections, such as encryption, obfuscation, non-standard programming languages, and the use of tools like Meterpreter and Veil Framework payloads. Specific bypass techniques covered include DLL injection, process hollowing, reflective loading, and the use of techniques like one-way shells and HTTP stagers.
SymNet is a tool that uses symbolic execution to analyze network behavior and check properties like reachability and loop detection. It models networks as programs and network elements as program blocks. SymNet analyzes how header fields change as packets traverse the network by symbolically executing the network program. This allows SymNet to scalably reason about network connectivity in the presence of middleboxes, without considering global state. Future work aims to extend SymNet's analysis capabilities.
Field Failure Reproduction Using Symbolic Execution and Genetic ProgrammingAlex Orso
?
Talk at the 30th CREST Open Workshop on Search Based Software Testing (SBST) and Dynamic Symbolic Execution (DSE) -- http://crest.cs.ucl.ac.uk/cow/30/
University College London, January 2014
Video available at http://youtu.be/i4T2g-mdJ-U
A recent survey conducted among developers of the Apache, Eclipse, and Mozilla projects showed that the ability to recreate field failures is considered of fundamental importance when investigating bug reports. Unfortunately, the information typically contained in a bug report, such as memory dumps or call stacks, is usually insufficient for recreating the problem. Even more advanced approaches for gathering field data and help in-house debugging tend to collect either too little information, and be ineffective, or too much information, and be inefficient. This talk presents two techniques that address these issues: BugRedux and SBFR. Both techniques aim to provide support for in-house debugging of field failures by synthesizing, using execution data collected in the field, executions that mimic the observed field failures. BugRedux relies on symbolic execution, whereas SBFR leverages dynamic programming. The talk discusses the two techniques' complementary strengths and weaknesses.
Symbolic Reasoning and Concrete Execution - Andrii Vozniuk Andrii Vozniuk
?
Higher-order test generation and symbolic execution with mixed concrete-symbolic solving are two approaches to dealing with imprecision caused by complex functions in test generation. Higher-order test generation models concretization symbolically using a higher-order logic and relies on validity proofs, while symbolic execution with mixed solving splits constraints into simple and complex parts, solves the simple part concretely, and uses those solutions to simplify the complex part, relying on standard constraint solving. Both approaches improve on dynamic test generation but are theoretical, sound but incomplete.
A Survey on Automatic Test Generation and Crash ReproductionSung Kim
?
The document provides an outline for a PhD qualifying exam on automatic test generation and crash reproduction. It discusses various approaches to automatic test generation including feedback-directed random generation, captured-object based generation, genetic evolution based generation, symbolic execution, and dynamic symbolic execution. It also covers approaches to automatic crash reproduction including record-and-replay and static analysis based approaches. The document identifies common challenges faced by these techniques such as the object creation problem in automatic test generation.
These slides contain an introduction to Symbolic execution and an introduction to KLEE.
I made this for a small demo/intro for my research group's meeting.
It is quite often that software developers have absolutely no clue about the cost of an error. It is very important that the error be found at the earliest possible stage.
Whatever it takes - Fixing SQLIA and XSS in the processguest3379bd
?
This document discusses techniques for preventing SQL injection and cross-site scripting (XSS) vulnerabilities. It proposes using prepared statements with separate data and control planes as a "safe query object" approach. It also discusses policy-based sanitization of HTML and focusing code reviews on defect detection through annotating suspicious code regions. The overall goal is to help developers adopt architectures and techniques that thoroughly apply technical solutions to recognize and fix security weaknesses.
This document provides an overview of fuzzing techniques and the Sulley fuzzing framework. It begins with definitions of fuzzing and different fuzzing techniques like static testing, randomized fuzzing, and mutation-based fuzzing. The rest of the document demonstrates how to setup and use the Sulley framework to fuzz protocols like HTTP and file formats. It includes explanations of the Sulley API and how to generate test cases, monitor for crashes, and analyze results. Examples are provided of fuzzing HTTP servers and file formats.
The why and how of moving to PHP 5.5/5.6Wim Godden
?
With PHP 5.6 out and many production environments still running 5.2 or 5.3, it's time to paint a clear picture on why everyone should move to 5.5 and 5.6 and how to get code ready for the latest version of PHP. In this talk, we'll look at some handy tools and techniques to ease the migration.
Eclipse Con 2015: Codan - a C/C++ Code Analysis Framework for CDTElena Laskavaia
?
Presentation about code analysis framework for CDT which is C/C++ IDE based on Eclipse. How to write a good static analysis tool? How to integrate right where develop introduces bugs? Catch bugs as you type!
Protocol T50: Five months later... So what?Nelson Brito
?
T50 (an Experimental Mixed Packet Injector) new features added to version 5.3 (Chaos Maker).
Check the original demonstration videos:
- https://www.youtube.com/playlist?list=PLda9TmFadx_m2qdd-euUf4zhQ-5juTVEx
For further source codes, please, refer to:
- http://t50.sourceforge.net/
This tutorial is intended for verification engineers that must validate algorithmic designs. It presents the detailed steps for implementing a SystemVerilog verification environment that interfaces with a GNU Octave mathematical model. It describes the SystemVerilog ¨C C++ communication layer with its challenges, like proper creation and activation or piped algorithm synchronization handling. The implementation is illustrated for Ncsim, VCS and Questa.
The document discusses using Python for ethical hacking and penetration testing. It provides reasons for using Python such as its ease of use, readable syntax, rich libraries, and existing tools. It then covers various Python libraries and frameworks used for tasks like reconnaissance, scanning, exploitation, and packet manipulation. Specific topics covered include file I/O, requests, sockets, scapy, and more.
Measuring maintainability; software metrics explainedDennis de Greef
?
In a world of ever-changing business requirements, how can you keep your software moving at the same pace?
If you keep adding lines of code around the previous iteration to add new functionality, things can become complex quite fast.
By measuring complexity, you can resolve and prevent bugs, while measuring class responsibility can make refactoring easier, for example.
In this talk Dennis will go through certain concepts of analysing software with automated tools to spit out numbers which tell a story about your code.
Secure Software: Action, Comedy or Drama? (2017 edition)Peter Sabev
?
If they made movies about the most important software security issues, they could be put into five titles: Insecure Interface, Insufficient Authentication, Security Misconfiguration, Lack of Transport Encryption and Privacy Concerns. What are the action, comedy and drama parts in software security nowadays? A talk presented on IT-Weekend event in Ruse, Bulgaria (2017)
CodeChecker is a static analysis tool that finds bugs in code by performing interprocedural analysis across files and functions. It uses the Clang compiler infrastructure to run checks from tools like the Clang Static Analyzer and Clang Tidy. CodeChecker provides features like cross-translation unit analysis, suppressing and tagging issues, and integration with version control systems. It outputs analysis results that are easy for developers to understand and fix issues.
The document provides information about Zenith Networks and Juniper Networks. It discusses that Zenith Networks has been a partner of Juniper Networks for 27 years providing network integration and education services. It also mentions that Juniper Networks was founded in 1996 and is headquartered in Sunnyvale, CA with over 9,400 employees in 46 countries. The document then goes over Juniper's JUNOS operating system and its modular design.
This document discusses the padding oracle attack, which allows decryption of encrypted data by exploiting flaws in padding validation on encrypted ciphertext. It describes how the attack works by using a padding validation "oracle" to decrypt ciphertext blocks one-by-one. It then explains how this can be used to decrypt web traffic and authentication cookies, potentially allowing complete compromise of the system.
Lors de cette pr¨¦sentation, nous apprendrons ¨¤ cr¨¦er des applications Web plus rapidement et avec moins d'erreurs en utilisant un langage de programmation puissant et amusant.
Agenda
- Installer TypeScript et configurer un nouveau projet.
- Tirer avantage des types de donn¨¦es.
- D¨¦velopper en Objets avec TypeScript
- Ecrire de meilleures fonctions
- Retrouver vos donn¨¦es avec LINQ
- Programmer de mani¨¨re asynchrone
- Bonnes pratiques
- Avantages et inconv¨¦nients des projets TypeScript
- Conclusion et Discussion
Application and Website Security -- Fundamental EditionDaniel Owens
?
The document provides an agenda for a course on application and website security. The agenda covers common input validation flaws like SQL injection and cross-site scripting, access control flaws like session hijacking, encryption flaws, security tools, and concludes with additional resources for further information. The document uses examples to demonstrate various security vulnerabilities and how they can be exploited.
[Èô¿ÊÓ‹®‹] Challenges and Solutions of Window Remote ShellcodeAj MaChInE
?
This document discusses challenges and solutions related to window remote shellcode. It outlines challenges posed by antivirus software, EMET, firewalls, and IDS/IPS systems. It then describes various techniques for bypassing these protections, such as encryption, obfuscation, non-standard programming languages, and the use of tools like Meterpreter and Veil Framework payloads. Specific bypass techniques covered include DLL injection, process hollowing, reflective loading, and the use of techniques like one-way shells and HTTP stagers.
The document discusses various security issues that can occur on web portals, including cross-site scripting (XSS) vulnerabilities that allow altering of content or stealing cookies, and cross-site request forgery (CSRF) attacks. It provides examples of how these attacks can be carried out, such as using XSS to change website branding or send a user's cookies to an attacker. The document recommends mitigation techniques like input filtering, consistency checks, and tying sessions to IP addresses to help prevent these types of attacks.
Mining Source Code Improvement Patterns from Similar Code Review WorksYuki Ueda
?
Yuki Ueda, Takashi Ishio, Akinori Ihara, and Kenichi Matsumoto, "Mining Source Code Improvement Patterns from Similar Code Review Works", In Proc. 13th International Workshop on Software Clones (IWSC¡¯19), 2019
How to Configure Flexible Working Schedule in Odoo 18 EmployeeCeline George
?
In this slide, we¡¯ll discuss on how to configure flexible working schedule in Odoo 18 Employee module. In Odoo 18, the Employee module offers powerful tools to configure and manage flexible working schedules tailored to your organization's needs.
Computer Network Unit IV - Lecture Notes - Network LayerMurugan146644
?
Title:
Lecture Notes - Unit IV - The Network Layer
Description:
Welcome to the comprehensive guide on Computer Network concepts, tailored for final year B.Sc. Computer Science students affiliated with Alagappa University. This document covers fundamental principles and advanced topics in Computer Network. PDF content is prepared from the text book Computer Network by Andrew S. Tenanbaum
Key Topics Covered:
Main Topic : The Network Layer
Sub-Topic : Network Layer Design Issues (Store and forward packet switching , service provided to the transport layer, implementation of connection less service, implementation of connection oriented service, Comparision of virtual circuit and datagram subnet), Routing algorithms (Shortest path routing, Flooding , Distance Vector routing algorithm, Link state routing algorithm , hierarchical routing algorithm, broadcast routing, multicast routing algorithm)
Other Link :
1.Introduction to computer network - /slideshow/lecture-notes-introduction-to-computer-network/274183454
2. Physical Layer - /slideshow/lecture-notes-unit-ii-the-physical-layer/274747125
3. Data Link Layer Part 1 : /slideshow/lecture-notes-unit-iii-the-datalink-layer/275288798
Target Audience:
Final year B.Sc. Computer Science students at Alagappa University seeking a solid foundation in Computer Network principles for academic.
About the Author:
Dr. S. Murugan is Associate Professor at Alagappa Government Arts College, Karaikudi. With 23 years of teaching experience in the field of Computer Science, Dr. S. Murugan has a passion for simplifying complex concepts in Computer Network
Disclaimer:
This document is intended for educational purposes only. The content presented here reflects the author¡¯s understanding in the field of Computer Network
Useful environment methods in Odoo 18 - Odoo ºÝºÝߣsCeline George
?
In this slide we¡¯ll discuss on the useful environment methods in Odoo 18. In Odoo 18, environment methods play a crucial role in simplifying model interactions and enhancing data processing within the ORM framework.
Finals of Kaun TALHA : a Travel, Architecture, Lifestyle, Heritage and Activism quiz, organized by Conquiztadors, the Quiz society of Sri Venkateswara College under their annual quizzing fest El Dorado 2025.
Digital Tools with AI for e-Content Development.pptxDr. Sarita Anand
?
This ppt is useful for not only for B.Ed., M.Ed., M.A. (Education) or any other PG level students or Ph.D. scholars but also for the school, college and university teachers who are interested to prepare an e-content with AI for their students and others.
Research & Research Methods: Basic Concepts and Types.pptxDr. Sarita Anand
?
This ppt has been made for the students pursuing PG in social science and humanities like M.Ed., M.A. (Education), Ph.D. Scholars. It will be also beneficial for the teachers and other faculty members interested in research and teaching research concepts.
QuickBooks Desktop to QuickBooks Online How to Make the MoveTechSoup
?
If you use QuickBooks Desktop and are stressing about moving to QuickBooks Online, in this webinar, get your questions answered and learn tips and tricks to make the process easier for you.
Key Questions:
* When is the best time to make the shift to QuickBooks Online?
* Will my current version of QuickBooks Desktop stop working?
* I have a really old version of QuickBooks. What should I do?
* I run my payroll in QuickBooks Desktop now. How is that affected?
*Does it bring over all my historical data? Are there things that don't come over?
* What are the main differences between QuickBooks Desktop and QuickBooks Online?
* And more
How to attach file using upload button Odoo 18Celine George
?
In this slide, we¡¯ll discuss on how to attach file using upload button Odoo 18. Odoo features a dedicated model, 'ir.attachments,' designed for storing attachments submitted by end users. We can see the process of utilizing the 'ir.attachments' model to enable file uploads through web forms in this slide.
Finals of Rass MELAI : a Music, Entertainment, Literature, Arts and Internet Culture Quiz organized by Conquiztadors, the Quiz society of Sri Venkateswara College under their annual quizzing fest El Dorado 2025.
How to Manage Putaway Rule in Odoo 17 InventoryCeline George
?
Inventory management is a critical aspect of any business involved in manufacturing or selling products.
Odoo 17 offers a robust inventory management system that can handle complex operations and optimize warehouse efficiency.
Prelims of Kaun TALHA : a Travel, Architecture, Lifestyle, Heritage and Activism quiz, organized by Conquiztadors, the Quiz society of Sri Venkateswara College under their annual quizzing fest El Dorado 2025.
Reordering Rules in Odoo 17 Inventory - Odoo ºÝºÝߣsCeline George
?
In Odoo 17, the Inventory module allows us to set up reordering rules to ensure that our stock levels are maintained, preventing stockouts. Let's explore how this feature works.
N.C. DPI's 2023 Language Diversity BriefingMebane Rash
?
CRAXweb: Automatic web application testing and attack generation
1. CRAXweb: Web Testing and
Attacks through ¡°QEMU¡± in S2E
Shih-Kun Huang
National Chiao Tung University
Hsinchu, Taiwan
skhuang@cs.nctu.edu.tw
2. Motivation
? Symbolic Execution is effective to crash
applications
¨C Catchconv, Bitfuzz, Taintscope, and Ardilla (PHP)
¨C Should be effective for Web Testing
? Symbolic Execution can also automate exploit
generation process
¨C AEG, MAYHEM, CRAX
¨C Should be feasible to automate Web Attack
(exploit) generation
3. How Effective of Automatic Exploit
Generation for non-web applications
? Mplayer (1.5MLOC) (CVE-2008-0630)
¨C MPlayer 1.0rc2 and SVN before r25823
¨C 3.6 seconds
? Microsoft Office Word (CVE-2012-0158)
¨C Microsoft Office < 2010
¨C 216 seconds
? Nginx (CVE-2013-2028)
¨C nginx 1.3.9/1.4.0 stack buffer overflow
¨C 8 seconds
4. Problems of Symbolic
Web Testing and Attacks
? Hard to Implement Symbolic Execution
Platform for Web
¨C MIT¡¯s Ardilla not in public and only for PHP
¨C Various number of Web platforms: PHP, JSP,
Python, Perl, Ruby, ASP
? Variety of Attack Methods
¨C Non-web attacks: stack, heap, format, integer,
uninitialized uses, race,¡
¨C OWASP top attacks: injection, XSS, CSRF,¡
5. Web Platform Independent Testing
? (PHP,JSP,ASP,NodeJS,Python,Ruby,¡) symbolic
execution engine ?
¨C QEMU¨Cbased symbolic execution engine -> S2E
? Issues
¨C Performance should be the primary consideration
¨C Will symbolic semantics be preserved ? Across
between Web semantics and llvm semantics.
6. Attack Independent Exploit Generation
? Taint Analysis
¨C Input tainted operations
? Symbolic Continuations (what to do next ?)
¨C Symbolic program counter (Symbolic EIP)
? Where the EIP points to
¨C Symbolic SQL query
? Where the SQL commands run
¨C Symbolic HTML response
? Where the Javascript executes
¨C Symbolic command argument
? Where the shell commands run
7. The power of Symbolic Computation
? Symbolic Execution
¨C Generating Testing input, following all feasible branches
? Concolic Execution
¨C Generating Testing input, following a concrete input path
and the associated branches
? Exploit Generation
¨C Generating Exploit input, following a concrete
Crash/Anomaly input path and branch to the associated
¡°shell code¡±
¨C Path Constraint generated by the crash input
¨C Constraints of Symbolic ¡°continuations¡± branching to the
shell code
8. Symbolic Execution
? Explore every possible path of a program
¨C Record path information in path constraint
Path constraint 1
Symbolic input
A program
Path constraint 2
Path constraint 3
2014/2/11
Liu Huan „¢šg A Generic Web Testing
and Attack Generation Framework
8
9. Concolic Execution
? Begin with a random input
? Use false path constraint to generate another
input case
Output1
Input 1
Path constraint 1
Input 2
A program
Output2
Path constraint 2
Output3
Input 3
Path constraint 3
¡¡
2014/2/11
Liu Huan „¢šg A Generic Web Testing
and Attack Generation Framework
¡¡
9
10. Exploit Generation
? Record the path constraint of the given crash
input
Crash Input: x
A program
Output: y
Path constraint
2014/2/11
Liu Huan „¢šg A Generic Web Testing
and Attack Generation Framework
10
11. Constraint Solving
Unknown input: x
A program
Output: y
Path constraint
? Given program output y, constraint solving is
the way to generate input x
Output: y
+
Solve constraint
Value of input x
Path constraint
11
12. Constraint Solving
? If f(x) = 100, what¡¯s the value of x?
Known output =100
Unknown input: x
Sample code
1 int f(x){
2
int y=x+10;
3
if (y >0)
4
return y;
5
else
6
return y;
7 }
12
13. Constraint Solving
? If f(x) = 100, what¡¯s the value of x?
¨C Use symbolic execution to get path constraint
Sample code
PC of path 1
Path constraint
PC of path 2
X+10 > 0
X+10 <= 0
1 int f(x){
2
int y=x+10;
3
if (y >0)
4
return y;
5
else
6
return y;
7 }
13
14. Constraint Solving
? If f(x) = 100, what¡¯s the value of x?
¨C Use symbolic execution to get path constraint
¨C ¡ß f(x) = y = X+10 = 100
Known output =100
¡à Add path constraint X + 10 = 100
Sample code
PC of path 1
PC of path 2
Path constraint
X+10 > 0
X+10 <= 0
Add constraint from
known information
X+10 = 100
X + 10 = 100
1 int f(x){
2
int y=x+10;
3
if (y >0)
4
return y;
5
else
6
return y;
7 }
14
15. Constraint Solving
? If f(x) = 100, what¡¯s the value of x?
¨C Use symbolic execution to get path constraint
¨C ¡ß f(x) = y = X+10 = 100
Known output =100
¡à Add path constraint X + 10 = 100
¨C Solve the constraint
? x = 90
Sample code
input: x=90
PC of path 1
PC of path 2
Path constraint
X+10 > 0
X+10 <= 0
Add constraint from
known information
X+10 = 100
X + 10 = 100
Constraint solving
X = 90
No solution
1 int f(x){
2
int y=x+10;
3
if (y >0)
4
return y;
5
else
6
return y;
7 }
15
16. Constraint Solving
? What¡¯s the XSS exploit of the given sample
code?
Sample code
1 <?php
2
$input = $_GET['id'];
3
for($i=0; $i<strlen($input); $i++)
4
echo chr(ord($input[$i])+1);
5
?>
16
17. Constraint Solving
? What¡¯s the XSS exploit of the given sample
code?
¨C Symbolic request & response
HTTP Request
Unknown input (XSS attack)
GET /index.php?id=[ input ] HTTP/1.1
Host: example.com
HTTP Response
Known output (an alert script)
HTTP/1.1 200 OK
Context-type: text/html
Sample code
<html>
some text [ output ]
</html>
1 <?php
2
$input = $_GET['id'];
3
for($i=0; $i<strlen($input); $i++)
4
echo chr(ord($input[$i])+1);
5
?>
17
18. Constraint Solving
? What¡¯s the XSS exploit of the given sample
code?
¨C Symbolic request & response
¨C Add JavaScript code as target character
? output = <script>alert(document.cookie)</script>
HTTP Response
;rbqhos=¡
HTTP Request
GET /index.php?id=[ input ] HTTP/1.1
Host: example.com
Sample code
<script>¡
1 <?php
2
$input = $_GET['id'];
3
for($i=0; $i<strlen($input); $i++)
<html>
some text [ output ]
4
echo chr(ord($input[$i])+1);
</html>
5
?>
HTTP/1.1 200 OK
Context-type: text/html
18
19. Constraint Solving
? What¡¯s the XSS exploit of given sample code?
¨C Symbolic request & response
¨C Add JavaScript code as target character
? output = <script>alert(document.cookie)</script>
¨C Solve the constraint
? input = ;rbqhos=`kds¡¯cnbtldms-bnnjhd(;,rbqhos=
HTTP Response
;rbqhos=¡
HTTP Request
GET /index.php?id=[ input ] HTTP/1.1
Host: example.com
Sample code
<script>¡
1 <?php
2
$input = $_GET['id'];
3
for($i=0; $i<strlen($input); $i++)
<html>
some text [ output ]
4
echo chr(ord($input[$i])+1);
</html>
5
?>
HTTP/1.1 200 OK
Context-type: text/html
19
20. Path Constraints
Input
Path constraint
Target output
Solved output
input[0]
chr(input[0]+1)
<
;
input[1]
chr(input[1]+1)
s
r
input[2]
chr(input[2]+1)
c
b
input[3]
chr(input[3]+1)
r
q
input[4]
chr(input[4]+1)
i
h
input[5]
chr(input[5]+1)
p
o
input[6]
chr(input[6]+1)
t
s
input[7]
chr(input[7]+1)
>
=
input[8]
chr(input[8]+1)
a
`
input[9]
chr(input[9]+1)
l
k
¡
¡
¡
¡
20
21. Exploit Generation of Single URL
? This method can check security risk of a single
URL
HTTP Response
HTTP/1.1 200 OK
Context-type: text/html
<script>alert(document.cookie)</script>
<html>
some text [ output ]
</html>
mysql_query
admin or 1=1--
SELECT * FROM user
WHERE user=[symbolic]
21
23. Single Path Concolic Execution
? In order to reduce the overhead on symbolic
execution
HTTP Request
HTTP Request
GET index.php?abc=[
Host: 123.123.123.123
] HTTP/1.1
Symbolic execution:
Explore all possible paths
GET index.php?abc=[AAAAA] HTTP/1.1
Host: 123.123.123.123
Single path concolic execution:
Only explore the path of the given
input
23
25. Outline
? Introduction
? Background
? Method
¨C Exploit Generation
¨C System Architecture
? Related Work
? Evaluation
? Conclusion and Future Work
25
26. System Architecture
?
?
?
?
Symbolic Environment on S2E
CRAXWeb Architecture
CRAX Framework
Detail of CRAXWeb
¨C Web Crawler
¨C Symbolic Request Sender
¨C Symbolic Data Sensor
¨C Exploit Generator
26
33. Web Crawler (Burp Suite)
Web application
GET index.php?abc=xxxxx HTTP/1.1
Host: example.com
Web crawler
Database
POST index.php HTTP/1.1
Host: example.com
Content-length: 40
a=xxxx&b=xxx
33
34. Symbolic Request Sender
Test unit
S2E
QEMU
(server)
Web
application
Symbolic
data sensor
s2e_myop
Sym. socket
Web
crawler
Symbolic
Symbolic
request
request
sender
sender
Expolit
generator
Sym.
Web Server
Socket
Report
Sym. Socket
Symbolic
data sensor
s2e_myop
STP Solver
(client)
34
36. Symbolic Data Sensor
Test unit
S2E
QEMU
(server)
Web
application
Symbolic
Symbolic
data
data sensor
sensor
s2e_myop
Sym. socket
Web
crawler
Symbolic
Sym.
request Socket Web Server
sender
Expolit
generator
Report
Sym. Socket
Symbolic
Symbolic
data
data sensor
sensor
s2e_myop
STP Solver
(client)
36
37. Symbolic Data Sensor
Sensitive data
Symbolic
data sensor
Exploit
generator
If it is a symbolic data,
The sensor can call exploit generator
Web security issues
XSS
SQL injection
¡
2014/2/11
Sensor location
HTTP Response
mysql_query()
¡
37
49. Evaluation for
Web platform independence
Test case ~= echo(¡°A¡±x50)
OT >= 12hr
PHP
JSP
Rails
Django
ASP
Framework
-
-
3.2
0.96.1
-
OS
Linux
Linux
Linux
Linux
Windows
Server
Apache-2.2.19
Tomcat-7.0.2
Webrick
Built-in
IIS-5.1
Kernel
PHP-5.3.6
JDK-7u2
Ruby-1.9.3
Python-2.6.6
ASP-3.0
Bind Port
80
8080
3000
8000
80
Symbolic
response time
18.50s
6.72min
7.45min
32.72s
OT
Without
constraints
16.42s
3.25min
5.62min
24.02s
OT
49
50. Evaluation for XSS
OT >= 15min
Test Case
Line Of
Code
# of
crawled
request
# of XSS
# of XSS
(vulnerable) by MIT
Time per
exploit
Time for all crawled
request
Schoolmate-1.5.4
8,125
452
19
14
0.30min
107.78min + 30OT
Webchess-1.0.0rc2
6,504
410
5(4)
13
0.80min
94.38min + 313OT
Faqforge-1.3.2
1,710
28
4
4
0.20min
5.74 min
EVE
904
12
2
2
0.42min
4.94min
Test Case
Line Of
Code
Platform
# of
crawled
request
# of XSS
(vulnerabl
e)
Time per
exploit
Time for all crawled
request
SimpGB-1.49.02
41,296
PHP
1,299
33(57)
0.91min
7.67hr + 334OT
DedeCms-5.6
84,544
PHP
1,111
11(13)
0.48min
8.32hr + 9OT
Django-admin-0.96.1
3,558
Python
5
1
5.29min
5.29min + 4OT
Discuz!-6.0
67,088
PHP
613
0(1)
0.85min
8.37hr + 12OT
Joomla-1.6
253,711
PHP
215
0(7)
2.17min
1.26hr + 117OT
50
51. Evaluation for SQL injection
Test Case
Schoolmate
Webchess
Faqforge
1.54
1.0.0rc2
EVE
1.3.2
Testlink
phpreci-
1.8.4
piebook
2.24
Line of code
8125
6504
1710
904
144913
52631
CVE
-
-
-
-
2009-
2009-
4238
4883
# of crawled request
269
65
7
9
218
65
# of SQLi (vulnerable)
12
6
3
3
9
6
# of SQLi by MIT
6
12
1
2
-
-
Time per exploit
0.55 min
0.39 min
0.27 min
0.24
3.24min
4.89min
2.12
706.4min
315.2min
min
(30 TO)
(32 TO)
934
18047
6322
min
Time for all crawled
148.58 min
25.15 min
1.88min
requests
# of all solved constraints
952
15254
1104
TO: Timeout
51
53. Automatic Web Attack Generator
? Based on symbolic execution
¨C White box
¨C Only support specific language
? Based on reply value of server
¨C Black box
¨C Hard to handle encrypted data
53
54. Related Work
Approach
year
Attacks/ Detectd
Generation Algorithm
W/B
Box
WB
Plateform
SAFELI
2008
SQLI Attack
Statically inspect bytecode of application
Apollo
2008
WB
PHP
WB
PHP
2010
Malformed HTML Use Concolic execution to find bugs in PHP
Detect
web applications
XSS, SQLI Attack
It combines concrete and symbolic
execution to covers paths
XSS, SQLI Attack
Attack gramma and symbolic execution
Adrilla
2009
Kudzu
WB
JavaScript
PIUIVT
2010
XSS, SQLI Attack
Perturbation based Algorithm
WB
Java
MySQLInject
or
NKSI Scan
2011
SQLIJ Attack
BB
PHP
2012
SQLIJ Attack
BB
JSP, ASP
CRAX Web
2012
XSS, SQLI Attack
Blind SQL Injection based on True/False,
Order by
Modulize SQL Injection patten to generate
attack string
Single path symbolic execution
WB
XSS: All,
SQLI: PHP
JAVA
54
55. Related Work
Approach
Year
Attacks / Detectd
SAFELI
Apollo
2008
2008
Adrilla
2009
SQLI Attack
Malformed HTML
Detect
XSS, SQLI Attack
Kudzu
PIUIVT
MySQLInjector
NKSI Scan
2010
2010
2011
2012
CRAX Web
2012
W / B Plateform
Box
W
JAVA
W
PHP
W
PHP
XSS, SQLI Attack
XSS, SQLI Attack
SQLI Attack
SQLI Attack
W
W
B
B
JavaScript
JAVA
PHP
JSP, ASP
XSS, SQLI Attack
W
XSS: All,
SQLI: PHP
55
56. Conclusion
? A framework to generate exploit of web
application
¨C Support XSS and SQL injection
Web application
CRAX Web
Vulnerability Report
? A successful trial of Symbolic Execution for
Web by S2E
56
57. Future Work
? Implement this structure on other kind of
exploit generation
Other Web Security issues
Remote file Inclusion /
Local File Inclusion
Directory traversal
Command injection
Code Injection
File upload
2014/2/11
Target Functions
include(), include_once(), require(),
requireonce()¡
fopen(), file(), unlink¡
system(), file()¡
eval()¡
move_uploaded_file(), rename(), ¡
Liu Huan „¢šg A Generic Web Testing
and Attack Generation Framework
57
58. Open Doors to More Work
? Symbolic Executions by S2E for
¨C PHP, Python
¨C JSP, Ruby
¨C ASP, Perl
¨C Node JS