Skip to content

Commit

Permalink
Merge pull request #13 from devlup-labs/bugbountyDemo
Browse files Browse the repository at this point in the history
Bugbounty demo
  • Loading branch information
Advaitgaur004 authored Oct 25, 2024
2 parents db01d3a + b1cf7ed commit 534e18e
Show file tree
Hide file tree
Showing 4 changed files with 170 additions and 0 deletions.
Empty file added demo/src/__init___.py
Empty file.
58 changes: 58 additions & 0 deletions demo/src/password_checker.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
class PasswordChecker:
def __init__(self):
self.min_length = 8
self.special_chars = "!@#$%^&*()_+-=[]{}|;:,.<>?"

def check_strength(self, password):
"""
Bug: The function doesn't properly check for the presence of numbers
It only checks if there's a digit in the first position
"""
score = 0
feedback = []

# Check length
if len(password) >= self.min_length:
score += 1
else:
feedback.append("Password should be at least 8 characters long")

# Check for uppercase
if any(c.isupper() for c in password):
score += 1
else:
feedback.append("Password should contain at least one uppercase letter")

# Bug: Incorrect number checking
if password[0].isdigit(): # Bug is here - only checks first character
score += 1
else:
feedback.append("Password should contain at least one number")

# Check for special characters
if any(c in self.special_chars for c in password):
score += 1
else:
feedback.append("Password should contain at least one special character")

strength = {
0: "Very Weak",
1: "Weak",
2: "Moderate",
3: "Strong",
4: "Very Strong"
}

return {
"score": score,
"strength": strength[score],
"feedback": feedback
}

# Usage Example
if __name__ == "__main__":
checker = PasswordChecker()
test_password = "2weakpass"
result = checker.check_strength(test_password)
print(f"Password Strength: {result['strength']}")
print("Feedback:", "\n".join(result['feedback']))
49 changes: 49 additions & 0 deletions demo/src/student_management.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
class Student:
def __init__(self, roll_no, name, age, grade):
self.roll_no = roll_no
self.name = name
self.age = age
self.grade = grade

class StudentManagementSystem:
def __init__(self):
self.students = []

def add_student(self, roll_no, name, age, grade):
"""
Bug: Function doesn't properly check for duplicate roll numbers
It compares strings instead of integers for roll numbers
"""
# Bug: Incorrect string comparison instead of integer comparison
if any(str(student.roll_no) == str(roll_no) for student in self.students):
return False, "Roll number already exists"

new_student = Student(roll_no, name, age, grade)
self.students.append(new_student)
return True, "Student added successfully"

def get_student(self, roll_no):
for student in self.students:
if student.roll_no == roll_no:
return student
return None

def display_all_students(self):
if not self.students:
return "No students registered"

result = "Student List:\n"
for student in self.students:
result += f"Roll No: {student.roll_no}, Name: {student.name}, "
result += f"Age: {student.age}, Grade: {student.grade}\n"
return result

# Usage Example
if __name__ == "__main__":
sms = StudentManagementSystem()

# These additions will work even though they should be duplicates
sms.add_student("001", "John Doe", 18, "A")
sms.add_student(1, "Jane Smith", 19, "B") # Should be rejected but won't be

print(sms.display_all_students())
63 changes: 63 additions & 0 deletions demo/src/todo_list.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
class Task:
def __init__(self, id, title, description):
self.id = id
self.title = title
self.description = description
self.status = "pending" # Can be "pending", "in_progress", or "completed"
self.is_completed = False # Bug: Redundant status tracking

class TodoList:
def __init__(self):
self.tasks = []
self.next_id = 1

def add_task(self, title, description):
task = Task(self.next_id, title, description)
self.tasks.append(task)
self.next_id += 1
return task.id

def update_status(self, task_id, new_status):
"""
Bug: Status inconsistency between status field and is_completed flag
"""
task = self.get_task(task_id)
if not task:
return False, "Task not found"

if new_status not in ["pending", "in_progress", "completed"]:
return False, "Invalid status"

task.status = new_status
# Bug: is_completed flag is not updated
# This creates inconsistency in task completion status
return True, "Status updated successfully"

def get_task(self, task_id):
for task in self.tasks:
if task.id == task_id:
return task
return None

def list_tasks(self):
if not self.tasks:
return "No tasks found"

result = "Task List:\n"
for task in self.tasks:
result += f"ID: {task.id}, Title: {task.title}\n"
result += f"Description: {task.description}\n"
result += f"Status: {task.status}, Completed: {task.is_completed}\n"
result += "-" * 50 + "\n"
return result

# Usage Example
if __name__ == "__main__":
todo = TodoList()

# Add a task and update its status
task_id = todo.add_task("Complete project", "Finish the bug bounty project")
todo.update_status(task_id, "completed")

print(todo.list_tasks())
# Will show inconsistency: status="completed" but is_completed=False

0 comments on commit 534e18e

Please sign in to comment.